首先,記憶體是連續的,二維陣列中的資料塊在記憶體中也是一塊連續的順序的儲存的空間。二維陣列名相當於指標,但是它指向的是乙個陣列型別。
int a [4][5]={}
那麼二維陣列a 在記憶體中的分配應該是順序分配 :----[5]--[5]--[5]--[5]----(此處[5]表示乙個長度為5的一維陣列)。
二維陣列名 a 指向一維陣列a[0](a相當於乙個指向陣列的指標,即陣列指標。注意,a+1,指向的是a[1]),a[0]代表乙個長度為5的陣列,也就是上面的第乙個[5],a[0]也是乙個常量指標,其指向一維陣列的第乙個元素。
一維陣列名 是乙個常量指標 指向一維陣列的首位址。
二級指標,是乙個指向指標型別的指標。int **p; p是乙個指向(int*)型指標的指標。很明顯二級指標p與二級陣列名a不是同一種資料型別。那麼二維陣列怎麼傳遞呢?
可以宣告 1、陣列的指標 int(*p),並對其賦值 p=a;
2、二級指標 int**p ,並對其賦值 p=(int *)a;
3、一級指標 int*p; 並對其賦值 p=(int*)a;
二維陣列與二級指標
今日在論壇上看到有人問到指標 級指標和二維陣列 我們知道char array abcdef array是陣列的首位址,那麼在二維陣列中array當然也是陣列的首位址,看看這個定義char array 3 怎麼知道的呢?定義這樣乙個陣列,在vc除錯視窗中 我們看到 array 0x64324234 a...
二級指標與二維陣列
include 輸入輸出標頭檔案。include 本程式需要用到malloc free函式,引用該標頭檔案。int main 定義二維陣列a,並賦值從1 12.int p null 定義二維指標。int i,j p int malloc sizeof int 3 要訪問的陣列有三行,所以申請三個一維...
二維陣列 指標陣列 陣列指標 二級指標
include 指標陣列 array of pointers,即用於儲存指標的陣列,也就是陣列元素都是指標 陣列指標 a pointer to an array,即指向陣列的指標 int a 4 指標陣列 表示 陣列a中的元素都為int型指標 優先順序高於 元素表示 a i int a 4 陣列指標...