指標儲存記憶體位址。指標變數本身佔用記憶體,因此也有自己的位址。若有一個指標變數儲存另一個指標變數的位址,它就是「指向指標的指標」,即二級指標(**)。
a)。*p)。int *p = &a)。int **pp = &p)。超過兩層指標通常暗示設計過度複雜,應重新審視。
int a = 99;
int *pa = &a; // 正確
int **ppa = &a; // 錯誤:型別不符(&a 是 int*,非 int**)
int **ppa = &&a; // 錯誤:&a 是位址常數,不能取址
int **ppa = &pa; // 正確:ppa 指向 pa

假設 a 位於 0x0012FF44,值為 0x63(99):
| 運算式 | 值 | 說明 |
|---|---|---|
a | 63 | 目標值 |
pa | 0012FF44 | 一級指標值(a 位址) |
*pa | 63 | 解參考取值 |
ppa | 0012FF40 | 二級指標值(pa 位址) |
*ppa | 0012FF44 | 解參考得 pa 值 |
**ppa | 63 | 雙重解參考得 a 值 |
掌握多層指標關鍵在於「記憶體位址鏈」的心智模型。下一篇將探討二級指標的實際應用場景(如函式修改指標參數、動態二維陣列等)。