二維陣列與二維指標

2021-05-24 15:46:07 字數 623 閱讀 2334

1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。

如一下**:

int map[5][5] = ;

int *mapd = & map[0][0];

則 map[i][j] == mapd[i*5+j];

而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞

如:將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指標

void fun( int* map, int width , int height ) }

fun( &map[0][0],5,5 );

2.通過二維指標分配的記憶體單元,並不一定是線性的,因而無法用二維陣列的方式進行訪問。

int** map = ( int** ) malloc ( sizeof( int ) * n * n )

這樣的**將會產生惡劣的後果。生成的動態二維陣列根本無法訪問。

推薦的方法是以迴圈來分配/釋放每乙個子陣列的空間,即

// alloc map= new int * [mwidth]; for( usigned int i=0 ; i< mwidth; i++ ) ;

二維陣列與二維指標

一.指標與二維陣列 以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型別...

二維指標和二維陣列

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

二維陣列 二維陣列和指標

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