我不清楚错误消息

时间:2010-08-22 02:22:08

标签: c

char name[10]="James";  //valid statement

char name[10];
strcpy(name,"james");   //valid statement

char name[10];
name[10]="james";       //invalid statement
*name="james";          // invalid statement

对于上面提到的两个无效的声明,它说 “错误:赋值从没有强制转换的指针生成整数”

错误消息不明确。什么是整数?哪个指针转换为 整数。

char name[10];
name="james";   //invalid statement
  

错误:从类型char

分配类型char [10]时出现不兼容的类型

请向我解释错误消息。究竟是什么。

1 个答案:

答案 0 :(得分:2)

问题在于:

name[10]="james";

此上下文中的name [10]是一个char(它是一种整数),而“james”是一个指针(对于char)。所以你试图将指针转换为char,这是一个无效的转换。

请注意,当你写:

char name[10];您正在定义一个 size 10的字符数组。

当你写的时候:

name[10]

你指的是name的元素索引10,即名字中的第11个字符(实际上是超出范围的 - name中的有效字符索引是name[0] .. {{1} })。