数组名是常指针,不能被赋值

不能把字符串"HELLO!"赋给数组b的语句是()

正确答案: B   你的答案: B (正确)

char b[10]={'H','E','L','L','O','!','\0'};
char b[10];b="HELLO!";
char b[10];strcpy(b,"HELLO!");
char b[10]="HELLO!";

B 选项是错误的,连编译都不会通过,因为数组名属于常性指针,现在要改变这个常性指针的指向,这是不会编译通过的,再说B 选项的本意是将Hello 拷贝到b指向的空间中,但实际却是将b指向了在常量区的Hellow 字符串(虽然编译不会通过)。

猜你喜欢

转载自blog.csdn.net/weixin_39345003/article/details/80727479