char c[6];
c = "77777777777 ";(错误)
char *str;
str = "7777777777 ";(正确)
C/C++规定:数组不可以赋值。
数组声明后有一块内存空间,数组名是那块内存的首地址,而且是常量,所以不能赋值,你只能通过strcpy、memcpy之类的直接修改那块内存空间的内容.
指针的话是变量,所以可以指向任意的地址
----------------------------------------------------
对于一个常量字符串的值是该字符串的首个元素的地址
对于
char c[6];
c = "77777777777 ";
c 相当于一个常量指针,他指向的地址是不能改变的,上面的赋值相当于让c指向 "777777... "字符串的首地址,因此是不可以的。
对于
char *str;
str = "7777777777 ";
让str指向 "7777777777 "的首地址,所以可行