b 错误。
char b[10];定义一个10个字节的字符数组,数据存储在动态内存区
"bye!"字符串常量,存储在常量区
b数组不能在定义后通过直接赋值将"bye!"字符串常量赋值。
可以在定义的时候初始化赋值
char b[]="bye!";
系统会自动完成"bye!"的每一个字符的赋值到对应的位置
如:
b[0]='b' b[1]='y' b[2]='e' b[3]='1' b[4]='\0' 字符串结束符号
b="bye!"就不能赋值
因为"bye!"是一个字符串常量不是数组的地址。
你明白了吗?
答案必是一个错误的答案。因为数组名是一个指针常量,它的值是系统在编译时确定的,不能够被赋值的。
而其余三个答案都能够正确的实现,给字符串数组赋一个字符串的值。
B中:一个是数组一个是指针,虽然两者用法一样毕竟还是两回事。相当于把指针地址写到数组地址(数组地址是常量,但反过来可以),所以必须用C的方法来赋值。