1. 程式人生 > >二級指標,指向指標的指標

二級指標,指向指標的指標

我們先來看一個例子:

int a=0;

int *b=&a;

假設我們有第三個變數時:

c=&b;

c的型別顯然是一個指標,變數b是一個”指向整形的指標”,所以任何指向b的型別必須是指向“指向的指標”的指標,更通俗的來講就是指標的指標。

它合法嗎?

指標變數和其他變數一樣,佔據記憶體中某個特定的位置,所以用&操作符取得他的地址是合法的。

這個變數宣告為:

int **c;

所以將他們寫在一起,將會是這樣的:

int    a=0;

int    *b=&a;

int     **c=&b;

我們知道*操作符具有從右向左的結合性,所以,這個表示式相當於*(*c),我們必須從外向內逐層求解。

當然,我們要進一步學習關於二級指標的知識,單單到這一程度是完全不夠的,我們需要一些更加通用的例子來了解它。

例:

int   i;

int   *pi;

int    **ppi;


那麼有了上面這些資訊之後,我們來看一些語句

ppi=π

這條語句把ppi初始化指向變數pi。以後我們就可以安全的對ppi執行間接訪問操作了。

*ppi=&i;

這條語句把pi(通過ppi間接訪問)初始化指向變數i,接下來後,下面這些語句將會有相同的效果:

i=‘a’;

*pi=‘a’;

**ppi=‘a’;