您的位置:首頁>正文

小白菜們的基礎入門:多維陣列

 今天我們來學習陣列的另一種用高級用法, 多維陣列。 多維陣列的定義與使用與數學定義一致, 它可以表示多維的數值。 順便推薦下我自己的C/C++學習群:598131849,

不管你是小白還是大牛, 小編我都挺歡迎, 不定期分享乾貨, 包括我自己整理的資料和零基礎入門教程, 送給大家, 歡迎初學和進階中的小夥伴。

一、二維陣列

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

int array[3][4] =

{

{ 0, 0, 0, 0 },

{ 0, 0, 0, 0 },

{ 0, 0, 0, 0 }

};

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

上面例子中我們定義了一個具有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++)

{

for (int j = 0; j < 4; j++)

{

printf("%d ", array[i][j]);

}

}

二、多維陣列

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

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

{

{ {0,0,0,0},{0,0,0,0},{0,0,0,0} },

{ {0,0,0,0},{0,0,0,0},{0,0,0,0} },

};

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

array[1][2][3] = 345;

再來看看多維陣列賦值與顯示的例子

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

{

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

{

for (int k = 0; k < 4; k++)

{

array[i][j][k] = i * 12 + j * 4 + k;

}

}

}

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

{

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

{

for (int k = 0; k < 4; k++)

{

printf("%d ", array[i][j][k]);

}

}

}

三、存儲方式

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

int array[2][3] =

{

{ 0, 1, 2 },

{ 3, 4, 5 }

};

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

也就是說我們雖然定義的是一個二維陣列, 但它實際在記憶體中仍然是一個連續的、線性的一維陣列, 只不過在使用時可以通過兩個維度的下標來使用他們。

同樣多維陣列也是這樣的, 我們來看一個三維陣列array[2][3][2]在記憶體中存儲的方式

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

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示