刚学c,不知道为啥这样。

img

img

a是数组,除了在声明的时候,数组不能直接通过等号赋值,也就是如果char a[5]="abcd"这样是可以的,但是char a[5]; a="abc"这样就是不对的。所以B是错误的。
p是一个char *指针,可以通过等号赋值(将字符串的地址赋值给p),A是正确的。
*p是取p指向的字符,也就是说*p是一个字符,所以不能将"abcd"字符串赋值给一个字符;所以C是错误的。
a是字符数组的首地址,*a也是一个字符,所以D也是错误的。

A可以啊
a作为数组,不可以直接作为左值进行任何赋值操作
*p相当于char,不能赋值字符串
p是指针,可以指向字符串