错误:
char s1[10];
char *s2;
s1="China";
s2 = "China";
而要这样:
char s2[10];
char *s1
strcpy(s2,"China");
strcpy(s1,"China");
因为char s1[10];char *s2;在C语言中这样定义之后s1,s2就成为指向数组首元素的常量指针,从栈中开辟空间把首地址给s1,s2,以后s1,s2中保存的地址不能再变。因此s1,s2不能通过“=”赋值,而只能通过strcpy向该地址赋值。
char s1[10]="china";
char *s2="china";
是被允许的,这里称之为字符串的初始化。