数组名不能被赋值的原因

先看一个题:

下面的代码正确吗?

char *string1;

char *string2;

string1=string2;

答案:正确


再看:

char string1[];

char string2[] = "Second";

string1=string2;


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


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

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

       


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值