为什么不可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

下述对C语言字符数组的描述中错误的是 (c )

A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较

为啥c是错的嘞?

难道s[10]={"happy"}这样 的语句不算是通过赋值运算符“=”对字符数组整体赋值吗?

初始化可以像你这样,但是除了初始化之外,后面数组名是一个常量,不能赋值

数组只能在定义的时候用'='进行初始化(此时数字名后面还有[ ]),后面的语句中,数组名就只能作为地址常量使用了,地址常量不能放在赋值号'='左边。

以 char str[16]为例,str表示的是一个地址,是一个指针,赋值只能改变指针的值