我們先來看乙個例子:
假設我們有第三個變數時:
c=&b;
c的型別顯然是乙個指標,變數b是乙個」指向整形的指標」,所以任何指向b的型別必須是指向「指向的指標」的指標,更通俗的來講就是指標的指標。
它合法嗎?
指標變數和其他變數一樣,佔據記憶體中某個特定的位置,所以用&操作符取得他的位址是合法的。
這個變數宣告為:
int **c;
所以將他們寫在一起,將會是這樣的:
int a=0;
int *b=&a;
int **c=&b;
我們知道*操作符具有從右向左的結合性,所以,這個表示式相當於*(*c),我們必須從外向內逐層求解。
當然,我們要進一步學習關於二級指標的知識,單單到這一程度是完全不夠的,我們需要一些更加通用的例子來了解它。
例:int i;
那麼有了上面這些資訊之後,我們來看一些語句
ppi=π
這條語句把ppi初始化指向變數pi。以後我們就可以安全的對ppi執行間接訪問操作了。
*ppi=&i;
這條語句把pi(通過ppi間接訪問)初始化指向變數i,接下來後,下面這些語句將會有相同的效果:
i=『a』;
*pi=『a』;
**ppi=『a』;
二級指標,指向指標的指標
test 函式的語句getmemory str,200 並沒有使str 獲得期望的記憶體,str 依舊是null,為什麼?指標傳遞 void getmemory char p,int num void test void 解釋 毛病出在函式getmemory 中,編譯器總是要為函式的每個引數製作臨時...
二級指標(指向指標的指標)
指標可以指向乙份普通型別的資料,例如 int double char 等,也可以指向乙份指標型別的資料,例如 int double char 等。如果乙個指標指向的是另外乙個指標,我們就稱它為二級指標,或者指向指標的指標。假設有乙個 int 型別的變數 a,p1是指向 a 的指標變數,p2 又是指向...
C語言 二級指標(指向指標的指標)詳解
摘自 c語言入門 指標可以指向乙份普通型別的資料,例如 int double char 等,也可以指向乙份指標型別的資料,例如 int double char 等。如果乙個指標指向的是另外乙個指標,我們就稱它為二級指標,或者指向指標的指標。假設有乙個 int 型別的變數 a,p1是指向 a 的指標變...