二維指標和二維陣列有三種形式:
1,type **ptr
2,type* ptr或者type *prt
3,(type *)prt
三種形式意思相近,也有區別。首先三種形式都能表示二維的資料結構。
1,type **ptr:表示乙個指向指標的指標
但是在一開始宣告的時候(type **ptr),ptr到底指向幾個指標是不知道的。只有在定義的時候(ptr = (type **)malloc(sizeof(type *[4]))才能確定。而且ptr本身是只占用乙個指標的記憶體。這是和type* ptr最大的不同;
2,type* ptr:表示乙個含有指向type型別的指標的陣列,結構圖和上面類似,但是在宣告的時候,ptr本身就占用4個指標的陣列(假如陣列裡含有4個指標)。
3,(type *)ptr:在定義後,ptr = (type(*)[5])malloc(sizeof(int(5*k))),ptr表示k個指標,每個指標都指向乙個含有5個type型別元素的陣列。ptr本身占用的記憶體只是乙個指標的記憶體。
二維陣列 二維陣列和指標
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 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...
二維陣列與二維指標
一.指標與二維陣列 以martix 3 4 為例 1.二維陣列的本質 int martix 3 4 int martix 3 4 int 4 martix 3 令int 4 為type,type martix 3 為含有三個元素的陣列,每乙個元素型別為int 4 int 4 是乙個擁有4個int型別...