指向多維陣列的指標變數問題

2023-01-18 15:50:26 字數 672 閱讀 2408

1樓:匿名使用者

int (*p)[4]這是一個指向一維陣列的指標,該語句表示定義一個指向由4個整型陣列元素組成的一維陣列的指標變數p,p儲存該一維陣列的起始地址。也就是說,樓主可以把int a[3][4]看成是一個包含4個元素的一維陣列,不過,樓主要注意的是,這個陣列中的元素也都是一個包含三個元素的整形一維陣列。p存放的就是這個陣列元素的首地址,即0這個元素的地址。

但是,還要提醒樓主的是如果給p+1,並不是指向該行的下一個元素,並不是指向1。例如p當前指向是的首地址,即0的地址,那麼給p+1就是下一行,即的首地址。這麼說不知道樓主明白不。

還有這種型別的指標的下標要和你定義的二維訴諸的下標相同,即,列的個數要相同,否則會出錯。

2樓:匿名使用者

char (*p)[4];這是定義了一個陣列指標,p指向含有4個char元素的陣列

區別一下:

char *p[4] 是指標陣列,陣列有4個元素,每個元素都是指標char (*p)[4]是陣列指標,p指向含有4個元素的陣列如p=&a[0][0];

(*p)[4] p+1 這時 p=&a[1][0]*p[4] p+1 這時為 p=&a[0][1]

3樓:慶韶容

跟p[4]是一個意思,表示存指標的陣列,其實就是二維陣列,記住就可以,望樓主採納

怎麼理解指向二維陣列的陣列指標是二級指標

一維陣列的名其實就是指標,如int a 4 a就相當於一個指標 int p a 沒錯 但是二維陣列 int aa 2 3 這個時候是不能用int pp aa 是錯誤的。實際上二維陣列的第一維是int ab 3 是個指標陣列,不是陣列指標。這個時候int ab 3 是與 int 不同的。所以接受二維陣...

使用指標變數分別指向int變數,從鍵盤輸入變數的值,請利用指標變數將數按由大至小的順序

純c 的,已經除錯過了,註釋也寫好了,直接可以執行 include using namespace std void compare int p1,int p2,int p3 定義一個比較函式,用來比較三個數的大小 if p2 p3 if p1 p2 p1指向最大的,p2指向次大的,p3指向最小的c...

字元指標變數和字元陣列的區別,字元陣列與字元指標變數的區別

簡單說一下 字元 非字串陣列,字元陣列和字串陣列是有區別的,字串陣列每個元素都是一個字串 陣列是用來存放字元的陣列,在記憶體中佔一段連續的單元。所佔記憶體存放的是字串。定義方法為 char a n n為常量表示式,可初始化。字元指標是指向字元的指標,所佔記憶體單元存放的是所指字元的記憶體單元。定義方...