#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct STUDENT
{
int ID;
char Name[64];
char Handle[32];
} STUDENT_INFO;
STUDENT_INFO person;
int main( void )
{
person. Name[] = "jason"; //错误1
person.Name = "jason"; //错误2
return 1;
}
错误1:“错误:expected expression before ‘]’ tok”
原因:C语言只有在定义字符数组的时候才能用“=”来初始化变量,其它情况下是不能直接用“=”来为字符数组赋值的。
错误2:“错误:赋值时类型不兼容”
原因:结构体中数组成员Name表示数组名,是一个指针,具有常量特性,表示数组存储空间的开始地址,而C语言中不能对常量赋值。
解决办法:
字符串有三种赋值方法: