1.二維陣列在記憶體中是以行優先的方式按照一維順序關係存放的。因此對於乙個二維陣列,可以按照乙個
一維指標陣列
來理解,陣列名是他的首位址,這個指標陣列的元素個數就是行數,每個元素是乙個指向二維陣列某一行的指標。例如,宣告乙個二維int型陣列:
int array[2][3]=,};
可以理解為: array
array[0]---array[00] array[01] array[03]
array[1]---array[10] array[11] array[13]
這個二維陣列有兩行三列,它相當於乙個一維的int型指標陣列。指標陣列的元素個數就是二維陣列的行數,指標陣列的兩個元素array[0]和array[1]分別代表二維陣列的第0行和第1行的首位址,而二維陣列的每一行就相當於乙個具有3個元素的一維int型別陣列。下面程式就是用這種方法來處理二維陣列。
#include
using namespace std;
void main()
,};for(int i=0;i<2;i++)
1,2行是對於行首位址的建立,第3行是在行的首位址上動態建立正行的記憶體空間。
1,2行可以合起來寫為
int **p=new int *[n];
可以看出這行**正與new運算的語法形式對應,右邊是乙個指標陣列,而左邊是指標的指標。
動態建立二維陣列
c 中用new動態建立二維陣列的格式一般是這樣 type p n new type n 其中,type是某種型別,n是二維陣列的列數。採用這種格式,列數必須指出,而行數無需指定。在這裡,p的型別是type n 即是指向乙個有n列元素陣列的指標。還有一種方法,可以不指定陣列的列數 int p p ne...
動態建立二維陣列
1.c 中 使用陣列指標,分配乙個 指標陣列,將其首位址儲存在b中,然後再為指標陣列的每個元素分配乙個陣列 int b new int row 分配乙個指標陣列,將其首位址儲存在b中 for i 0 ib null 例 動態建立二維陣列 void main int col,row cin row c...
建立動態二維陣列
法1既然二維陣列也可以稱為矩陣,那麼我們就可以給二維陣列的每一行開闢一塊空間,然後再用一塊空間把這些空間的行存放和管理起來,這塊空間顯然就是乙個指標陣列,陣列的每乙個元素都是乙個指向乙個陣列的位址。int arr null int row 5 用於表示行數 int col 5 用於表示列數 arr ...