二維指標和二維陣列的區別

2021-07-01 17:58:28 字數 912 閱讀 6286

1、定義指向陣列的指標,需要指定陣列的列

char arr[3]或char (*arr)[3];//二維陣列本質上是一維陣列

*p[3]指標陣列;陣列的每乙個元素都是指標

**p二維指標;指向指標的指標

2、

int arr1[3];

int arr2[3];

int arr3[3];

int * ptr;

// ptr1是乙個指向 int [3] 的指標,即ptr的型別和&arr1的型別是一樣的,注意:arr1指向的記憶體區域定長

int ptr1[3][3]=,,};

// ptr2是乙個指向 int * 的指標,即ptr2的型別和&ptr是一樣的,注意:ptr指向的記憶體區域不定長

int * ptr2[3]=;

// ptr3是乙個指向 int [3] 的指標,即ptr3的型別和&arr1的型別是一樣的,注意:arr1指向的記憶體區域定長

int(* ptr3)[3]=&arr1;

ptr3=ptr1; // 沒錯,他們的型別相同

// ptr3=ptr2;//error 無法從「int

*[3]」轉換為「int (*)[3]

// ptr4是乙個指向 int * 的指標,即ptr4的型別和&ptr是一樣的,注意:ptr指向的記憶體區域不定長

int** ptr4;

//ptr4=&arr1; //error 無法從「int (*)[3]」轉換為「int

** ptr4=ptr2; // 沒錯,他們的型別相同

//ptr4=ptr3; // error 無法從「int (*)[3]」轉換為「int

**

3、乙個簡單的理解就是,只要型別能對上就可以。

二維指標和二維陣列

二維指標和二維陣列有三種形式 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 ...

二維陣列與二維指標

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