数组名不能被赋值的原因

来源:互联网 发布:js this 指向对象 编辑:程序博客网 时间:2024/04/29 08:58

先看一个题:

下面的代码正确吗?

char *string1;

char *string2;

string1=string2;

答案:正确


再看:

char string1[];

char string2[] = "Second";

string1=string2;


答案: 不正确。数组要复制的话,请使用strcpy();      本例中,strcpy(string1,string2);


为毛,既然数组名也是指针,但是不能被赋值?

数组名在表达式中表示指向首元素的指针常量,这个常量运行时才被分配到栈中,既然是常量当然不允许修改,一旦定义就不能再被赋值了。
   

       


0 0