字符數組初始化
1:
char str[]="123";//不報錯
2:
char str[4];
str="123";//不能將const char[4] to char[4]
字符指針初始化
1:
char *str="123";//不報錯
2:
char *str;
str="123";//不報錯
求大神解釋這是為什麼
我來解釋一下:
數組初始化
1、char str[]="123";//不報錯
原因是,這樣的寫法,實際上str是一個指針變量,str指向了“123”數據段。
等效於char *str="123";
char *str;
str="123";
這個很好理解了,對一個指針變量賦“123”數據段的首地址。
2、char str[4];
str="123";//不能將const char[4] to char[4]字符指針初始化
這個是錯誤的,表面上的意義是str是一個數組,str變量則是這個數組的首地址,等效於&str[0],因此這樣賦值是非法的。