- 结论
- 在定义字符数组时,可以同时初始化字符数组,即用字符串常量给字符数组赋值
- 在定义完之后,则不允许用字符串常量给字符数组赋值。如需赋值,则使用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 type
strcpy(arr, "abc");
printf("%s %s\n", arr0, arr); // 输出abc
return 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 type
Joe.name = "hahahah";
printf("%s %d\n", Joe.name, Joe.age);
return 0;
}