char c[6];
c = "77777777777 ";(錯誤)
char *str;
str = "7777777777 ";(正確)
C/C++規定:數組不可以賦值。
數組聲明后有一塊內存空間,數組名是那塊內存的首地址,而且是常量,所以不能賦值,你只能通過(guò)strcpy、memcpy之類(lèi)的直接修改那塊內存空間的內容.
指針的話(huà)是變量,所以可以指向任意的地址
----------------------------------------------------
對于一個(gè)常量字符串的值是該字符串的首個(gè)元素的地址
對于
char c[6];
c = "77777777777 ";
c 相當于一個(gè)常量指針,他指向的地址是不能改變的,上面的賦值相當于讓c指向 "777777... "字符串的首地址,因此是不可以的。
對于
char *str;
str = "7777777777 ";
讓str指向 "7777777777 "的首地址,所以可行