a和b都是数组,在C语言中,数组不能直接用=赋值,所以a=b这种写法是错误的。
(数组名是数组的首地址,也是数组第一个元素的首地址,是一个常量,常量不允许作为=的左值,所以,数组不能用=直接赋值)
如果需要赋值,需要用strcpy来实现:
strcpy(a,b);
但是这里,a只有3 个字节大小,b是6个字节大小(还有最后一个不可见的\0字符),数组a的大小小于数组b的大小,用strcpy(a,b)拷贝的时候,a可能会不能正常结束。
数组不是指针,数组a的地址是固定的,指向的内存地址是固定的,地址不能变。所以a=b;是错误的