- 结论
- 在定义字符数组时,可以同时初始化字符数组,即用字符串常量给字符数组赋值
- 在定义完之后,则不允许用字符串常量给字符数组赋值。如需赋值,则使用strcpy()函数(需包含头文件string.h)
#include <stdio.h>
#include <string.h>
int main()
{// 定义同时初始化char arr0[10] = "abc";// 定义完赋值char arr[10];
// arr = "abc";// error: assignment to expression with array typestrcpy(arr, "abc");printf("%s %s\n", arr0, arr); // 输出abcreturn 0;
}
- 结构体中的数组成员变量同理
#include <stdio.h>struct stu
{char name[20];int age;
};int main()
{struct stu Joe;Joe.age = 19;// error: assignment to expression with array typeJoe.name = "hahahah";printf("%s %d\n", Joe.name, Joe.age);return 0;
}