int p如何使用?

2021-07-15 20:06:38 字數 422 閱讀 8321

對於int **p來說,p所指的物件是指標,那麼++p就是讓p的值增乙個指標的大小,雖然指標所指對像可大可小,但是指標自己的大小卻是一定的,目前的系統上一般是4位元組(或8位元組)。也就是說,對char *p和long *q來說,p和q本身佔記憶體容量是一樣大的(雖然char和long佔記憶體不一樣大)。

乙個典型的錯例:

int a[2][3];

int **p = a;//錯誤

這個**的錯誤之處在於a是乙個陣列,它的成員也是陣列,所以a叫做「陣列的陣列」——c++中嚴格說來沒有二維陣列。那麼,要用乙個指標來記錄a,就要用乙個能表示「陣列的陣列」的指標,以下**是正確的:

int (*p)[3] = a;//正確

只有這樣才能保證++p使p指向a的下一對像(該對像是乙個陣列)。

順便提一句:不要寫成「int *p[3];」

int p 與int p 的不同

如int p 與int p 的區別 舉例說明 1 int p 2 是乙個指向int型的指標陣列,即 p是包含兩個元素的指標陣列,指標指向的是int型。可以這樣來用 include using namespace std int main int argc,char argv int b 4 p 0 ...

int p 與int p 的不同

如int p 與int p 的區別 舉例說明 1 int p 2 是乙個指向int型的指標陣列,即 p是包含兩個元素的指標陣列,指標指向的是int型。可以這樣來用 include using namespace std int main int argc,char argv int b 4 p 0 ...

int p 與int p 的不同

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!舉例說明 1 int p 2 是乙個指向int型的指標陣列,即 p是包含兩個元素的指標陣列,指標指向的是int型。可以這樣來用 include using namespace std int main int argc,char argv int ...