先看一个题:
下面的代码正确吗?
char *string1;
char *string2;
string1=string2;
答案:正确
再看:
char string1[];
char string2[] = "Second";
string1=string2;
答案: 不正确。数组要复制的话,请使用strcpy(); 本例中,strcpy(string1,string2);
为毛,既然数组名也是指针,但是不能被赋值?
数组名在表达式中表示指向首元素的指针常量,这个常量运行时才被分配到栈中,既然是常量当然不允许修改,一旦定义就不能再被赋值了。