我需要创建一个结构,其成员是一个字符数组,如下所示:
struct Person{
char name [100];
};
为什么以下导致不兼容的类型错误?以及如何解决它?
struct Person john;
john.name = "John";
上面的任务和下面的任务之间有什么区别,这很有效:
char str[100] = "this is a string";
答案 0 :(得分:1)
john.name = "John";
是一项任务(在这种情况下不可能),而
char str[100] = "this is a string";
是初始化的定义。
john.name = "John";
是C中的无效语句,因为数组不能是=
运算符的左操作数。您需要strcpy
或strncpy
来复制字符串。
答案 1 :(得分:0)
C不允许您将赋值运算符与数组一起使用。有一个特殊的规定允许您使用字符串文字初始化数组:
struct Person john = {"John"};