C語言基礎 多維陣列

2021-08-18 08:49:00 字數 1682 閱讀 8083

        今天我們來學習陣列的另一種用高階用法,多維陣列。多維陣列的定義與使用與數學定義一致,它可以表示多維的數值。

一、二維陣列

例如我們先來定義乙個二維陣列

int array[3][4] =,	,

};

我們可以像上面例子一樣在陣列定義時為其指定初始值,也可以在陣列定義之後再為其賦值。

上面例子中我們定義了乙個具有3行的陣列,而這個陣列的每一行都具有4個元素,所以這個二維陣列一共具有3x4=12個元素。在使用多維陣列時,同樣與一維陣列一樣採用中括號下標表示法如:

array[0][0] = 0;

array[0][1] = 0;

array[0][2] = 0;

array[0][3] = 0;

array[1][0] = 0;

array[1][1] = 0;

array[1][2] = 0;

array[1][3] = 0;

array[2][0] = 0;

array[2][1] = 0;

array[2][2] = 0;

array[2][3] = 0;

同樣在中括號的下標不一定是數值,可以使用變數或表示式。例如我們通過乙個雙迴圈巢狀來顯示這個二維陣列:

for (int i = 0; i < 3; i++)

}

二、多維陣列多維陣列的定義與使用與一維和二維陣列一致,只不過多了一些維度而已。我們來定義乙個三維陣列

int array[2][3][4] =

,, },

,, },

};

這個三維陣列共有2x3x4=24個元素。同樣在使用多維陣列時可以用中括號來取得其某個元素

array[1][2][3] = 345;
再來看看多維陣列賦值與顯示的例子

for (int i = 0; i < 2; i++)	}}

for (int i = 0; i < 2; i++)

}}

三、儲存方式理論上講我們可以定義任意維度的陣列和任意大小的陣列,但它們並不是像數學上或物理上所定義的多維度一樣,在記憶體中,多維陣列也是通過一維線性的方式儲存在一塊連續的記憶體中的。例如:

int array[2][3] = ,		

};

這個二維陣列在記憶體中是這樣儲存的:

也就是說我們雖然定義的是乙個二維陣列,但它實際在記憶體中仍然是乙個連續的、線性的一維陣列,只不過在使用時可以通過兩個維度的下標來使用他們。同樣多維陣列也是這樣的,我們來看乙個三維陣列array[2][3][2]在記憶體中儲存的方式

其實多維陣列的本質與一維陣列沒有什麼區別,只不過在使用時可以通過多維下標的方式來使用其元素,這樣就使我們可以通過更人性化的方式來使用它們。

C語言陣列之多維陣列

多維陣列 可以理解為存放陣列的陣列 以宿舍或公寓為例 元素 就是乙個乙個房間 1001 一層 相當於是一維陣列 一棟樓 就相當於二維陣列 乙個園區 就相當於三維陣列 乙個高教區 就相當於四位陣列 乙個城市 就相當於五維陣列 多維陣列定義演示 int arr 10 10 10 10 10 10 pri...

C 基礎系列四 多維陣列

c 中的多維陣列其實就是陣列的陣列,二維陣列指的就是陣列的元素也是陣列。1 初始化 二維陣列的初始化方式有如下幾種 1 int ia 3 4 2int ia1 3 4 3int ia2 3 4 只初始化了每一行的第乙個元素 4int ia3 3 4 只初始化了第一行的元素 對於第3行所顯示的初始化方...

C 多維陣列

宣告乙個二維陣列,如下 型別 陣列名 宣告乙個三維陣列,如下 型別 陣列名 多維陣列最簡單的形式是二維陣列。乙個二維陣列,在本質上,是乙個一維陣列的列表。乙個二維陣列可以被認為是乙個帶有 x 行和 y 列的 下面是乙個二維陣列a,包含 3 行和 4 列 所以訪問二維陣列的元素 a 行下標,列下標 初...