char str[]="CHINA";是对的吗?那字符串不能给字符数组赋值又是什么意思,这不就是赋值了吗?

char str[]="CHINA";是对的吗?那字符串不能给字符数组赋值又是什么意思,这不就是赋值了吗?

是对的
只有在定义的时候可以这样初始化一次,后面就不行了
比如
char str[]="CHINA";
str[]="ABCDE";
这样写就是错的

“变量赋值”和“变量初始化”不是一回事!
“变量赋值”发生在运行期,其写法遵循赋值语法规定。
“变量初始化”发生在编译期或运行期,其写法遵循初始化列表语法规定。