古詩詞大全網 - 成語故事 - 指針與指針的指針有本質上的區別嗎

指針與指針的指針有本質上的區別嗎

區別呀,我們看例子說吧:

a)、int *p;

b)、int **p;

1、指針的本質

分析:

所謂的數據類型就是具有某種數據特征的東東,比如數據類型char,它的數據特征就是它所占據的內存為1個字節, 指針也很類似,指針所指向的值也占據著內存中的壹塊地址,地址的長度與指針的類型有關,比如對於char型指針,這個指針占據的內存就是1個字節,因此指針也是壹種數據類型,但我們知道指針本身也占據了壹個內存空間地址,地址的長度和機器的字長有關,比如在32位機器中,這個長度就是4個字節,因此"指針本身也同樣是壹種數據類型",因此,我們說,指針其實是壹種復合的數據類型,

好了,現在我們可以分析上面的幾個例子了。

假設有如下定義:

int nValue;

那麽,nValue的類型就是int,也就是把nValue這個具體變量去掉後剩余的部分,因此,上面的4個聲明可以類比進行分析:

a)、int *

*代表變量(指針本身)的值是壹個地址,int代表這個地址裏面存放的是壹個整數,這兩個結合起來,int *定義了壹個指向整數的指針,類推如下:

b)、int **

指向壹個指向整數的指針的指針。

2、對指針所指向物的分析

現在再對指針這個復合類型的第二部分,指針所指向物的意義進行分析。

上面我們已經得到了指針本身的類型,那麽將指針本身的類型去掉 “*”號就可得到指針所指向物的類型,分別如下:

a)、int

所指向物是壹個整數。

b)、int*

所指向物是壹個指向整數的指針。