1.指標在進行間接訪問之前,確保已被初始化。否則,會給指標分配乙個非法位址,輕則報錯,重則在毫不相干的地方報錯(指標偶爾包含合法位址)
2.為了測試乙個指標變數是否為null,你可以將它與零值進行比較
3.注意:指標變數可以作為左值使用,並不是因為它們是指標,而是因為它們是變數。間接訪問指定了乙個特定的記憶體位置,這樣我們便可以把間接訪問表示式的結果作為左值使用
4.判別對錯
int a;
int *d = &a;
*d = 10 - *d;
d = 10 - *d; 錯,左邊是指標型別,右邊是整型
*&a = 25; 對 一正一負,正好抵消
*100 = 25 錯 *間接訪問操作符只針對指標型別,不能針對整型
5.如果p是乙個指向char的指標,那麼char+1代表指向下乙個char, 其他型別也如此,在迴圈時使用較為方便(更新了之前只會陣列的迴圈的醜陋技巧)(也適應於使用malloc函式動態分配獲得的記憶體)
6. (1)指標:系統為某乙個變數開闢單元格,指標便指向此單元格的變數值。
(2)陣列:系統為某一組數開闢一組單元格,陣列首位址便是你定義的陣列變數名。
陣列和指標的唯一區別是,不能改變陣列名稱指向的位址。
對於陣列來說,陣列的首位址,也可以用指標來表示操作,如:
int a[10];
int *p,n;
p = a;
對第乙個元素取值,可以用幾種方法:
n =a[0];
n = *p;
n = p[0];
n = *(p+0)
第六章 指標
1.多位元組資料的位址是在最左邊還是最右邊的位置,不同的機器有不同的規定,這也正是大端和小端的區別,位址也要遵從邊界對齊 2.高階語言的乙個特性就是通過名字而不是位址來訪問記憶體的位置,但是硬體仍然通過位址訪問記憶體位置 3.記憶體中的變數都是義序列的0或1的位,他們可以被解釋為整數或者其他,這取決...
C語言第六章 指標
一,什麼是指標 2.其次要了解計算機的cpu和記憶體條之間的關係 3.指標的含義 二,指標的定義 1.指標變數的基本定義 includeint main void 2.指標變數的解釋 3.經典的指標程式 互換兩個變數的值 includevoid fun int p,int q int main vo...
第六章 指標(1)
int a a 10 這是c初學者很容易犯的乙個錯誤。我們定義了乙個指標變數a,它儲存的是某乙個整型變數的位址,然而,我們並沒有把該位址賦值給它,緊接著,我們將乙個常量10賦給指標變數a所儲存的位址所指向的值,然而實際上,我們並沒有給該指標變數賦值,因此,幸運的情況是系統的崩潰,嚴重的錯誤是指標變數...