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]时出现不兼容的类型
请向我解释错误消息。究竟是什么。
答案 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} })。