c++中的多維陣列其實就是陣列的陣列,二維陣列指的就是陣列的元素也是陣列。
(1)初始化
二維陣列的初始化方式有如下幾種:
1int ia[3][4] = , , };
2int ia1[3][4] = ;
3int ia2[3][4] = ,,};//
只初始化了每一行的第乙個元素
4int ia3[3][4] = //
只初始化了第一行的元素
對於第3行所顯示的初始化方式,剩下的元素的初始化規則同一維陣列的初始化方式,即內建型別的初始化為0,類型別的呼叫預設建構函式進行初始化。
(2)指標和多維陣列
如果表示式只提供了多維陣列的乙個下標,那麼獲取的元素是該行下標索引的內層陣列,如ia[2]獲取的是ia陣列的第三行,而非陣列中的任何元素。
因為多維陣列其實就是陣列的陣列,所有由多維陣列轉換而成的指標型別應是指向第乙個內層陣列的指標,如:
1int ia[3][4];2
int (*ip)[4] = ia;//
ip points to an array of 4 ints
3 ip = &ia[2];
注意,下面的兩個宣告是不同的:
1int *ip[4];//
array of pointers to int
2int (*ip)[4];//
pointer to an array of 4 ints
其區別類似於函式指標與函式宣告,可以通過typedef更直觀的定義:
1 typedef int int_array[4];2 int_array* ip = ia;
利用指標遍歷二維陣列如下:
1int ia[3][4] = ,,};
2 typedef int int_array[4];3
for(int_array* p = ia; p != ia+3; p++)
4
上面的**中外層的for迴圈中p初始化為指向ia的第乙個內層陣列,每移動一次就指向下一行的內層陣列,記憶體for迴圈中,對p進行解引用獲得的是乙個有4個int型元素的陣列,通常,系統會自動將它轉換為指向該陣列第乙個元素的指標。
C語言基礎 多維陣列
今天我們來學習陣列的另一種用高階用法,多維陣列。多維陣列的定義與使用與數學定義一致,它可以表示多維的數值。一 二維陣列 例如我們先來定義乙個二維陣列 int array 3 4 我們可以像上面例子一樣在陣列定義時為其指定初始值,也可以在陣列定義之後再為其賦值。上面例子中我們定義了乙個具有3行的陣列,...
C 多維陣列
宣告乙個二維陣列,如下 型別 陣列名 宣告乙個三維陣列,如下 型別 陣列名 多維陣列最簡單的形式是二維陣列。乙個二維陣列,在本質上,是乙個一維陣列的列表。乙個二維陣列可以被認為是乙個帶有 x 行和 y 列的 下面是乙個二維陣列a,包含 3 行和 4 列 所以訪問二維陣列的元素 a 行下標,列下標 初...
C 多維陣列
參考自 primer c 第五版 嚴格的講,c 沒有多維陣列,通常所說的多維陣列其實是陣列的陣列。當乙個陣列的元素依然是陣列時,通常使用兩個維度來定義它 乙個維度表示陣列本身大小,另乙個維度表示其元素 也就是陣列 的大小 int a 3 4 表示大小為3的陣列,每個元素是含有4個整數的陣列 int ...