1. 程式人生 > >為什麼char型指標可以直接賦值而其他型別的不行呢?個人見解

為什麼char型指標可以直接賦值而其他型別的不行呢?個人見解

char *aa="abc";
char *bb="abc";
系統把  "123"  放在了靜態儲存區裡,棧裡放了  aa  這個指標變數,指向了  "123"這個地址。
char aaa[] = "123";
char bbb[] = "123";
是系統在棧裡面放了兩個字元陣列變數,互相無任何關聯,因此它的aaa與bbb不會相等。 角度二(指標內容和地址): aa和bb存的都是相同的指標地址。
aaa和bbb雖然都是 "abc",但地址不一樣。
問題總結: 既然這個問題能夠理解清楚,那麼從這兩個角度來說,給指標一個內容那麼就不能跟我們傳統意義上的“賦值”相提並論。因為對於問題中int *a = 1;來說這個1 是整型資料不能放入靜態儲存區。而從內容和地址來說,如果像上述兩種賦值方式得到的只能是記憶體的地址,而不是內容。