二維陣列指標

2021-08-04 05:34:43 字數 651 閱讀 8057

int main()

;  char (*p)[3];

p=a;

pf("%c %c\n",**p,**p+1);

pf("%c %c\n",**a,**a+1);

pf("%p %p %p %p\n",*p,*p+1,p,p+1);

pf("%p %p %p %p\n",*a,*a+1,a,a+1);

return 0;

}

如上所示,假設a 是二維陣列,p是乙個陣列指標;

1.對p來說,指向的是二維陣列的首元素(乙個一維陣列),對其++,可以使其指向二維陣列裡的下乙個元素(一維陣列),對其解引用(*p)就可以使其指向這個一維陣列的首元素(乙個字元),再++,可以使其指向這個一維陣列的另乙個元素(乙個字元),然後再解引用(**p),可以得到當前指向的元素的值(乙個具體的char值)。

2.對a來說,因為陣列名也就是陣列的首元素(乙個一維陣列)的位址,可以使其指向二維陣列裡的下乙個元素(一維陣列),對其解引用(*p)就可以使其指向這個一維陣列的首元素(乙個字元),跟p是一樣的。

最後的輸出結果為:

二維陣列 二維陣列和指標

include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...

二維陣列與二維指標

1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...

二維指標和二維陣列

二維指標和二維陣列有三種形式 1,type ptr 2,type ptr或者type prt 3,type prt 三種形式意思相近,也有區別。首先三種形式都能表示二維的資料結構。1,type ptr 表示乙個指向指標的指標 但是在一開始宣告的時候 type ptr ptr到底指向幾個指標是不知道的...