一個(gè)數(shù)組能表示一個(gè)班人的年齡,如果想表示很多班呢?
什么是二維數(shù)組?int ages[3][10]; 三個(gè)班,每個(gè)班10個(gè)人
相當(dāng)于3行10列
相當(dāng)于裝著3個(gè)一維數(shù)組
二維數(shù)組是一個(gè)特殊的一維數(shù)組:它的元素是一維數(shù)組。例如int a[2][3]可以看作由一維數(shù)組a[0]和一維數(shù)組a[1]組成,這兩個(gè)一維數(shù)組都包含了3個(gè)int類型的元素
二維數(shù)組定義的一般形式是:
類型說明符 數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]
其中常量表達(dá)式1表示第一維下標(biāo)的長(zhǎng)度,常量表達(dá)式2 表示第二維下標(biāo)的長(zhǎng)度。例如:
int a[3][4];
說明了一個(gè)三行四列的數(shù)組,數(shù)組名為a,其下標(biāo)變量的類型為整型。該數(shù)組的下標(biāo)變量共有3×4個(gè),即:
a[0][0], a[0][1], a[0][2], a[0][3]
a[1][0], a[1][1], a[1][2], a[1][3]
a[2][0], a[2][1], a[2][2], a[2][3]
二維數(shù)組在概念上是二維的,即是說其下標(biāo)在兩個(gè)方向上變化,下標(biāo)變量在數(shù)組中的位置也處于一個(gè)平面之中,而不是象一維數(shù)組只是一個(gè)向量。但是,實(shí)際的硬件存儲(chǔ)器卻是連續(xù)編址的,也就是說存儲(chǔ)器單元是按一維線性排列的。如何在一維存儲(chǔ)器中存放二維數(shù)組,可有兩種方式:一種是按行排列, 即放完一行之后順次放入第二行。另一種是按列排列, 即放完一列之后再順次放入第二列。 在C語言中,二維數(shù)組是按行排列的。即,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四個(gè)元素也是依次存放。由于數(shù)組a說明為int類型,該類型占兩個(gè)字節(jié)的內(nèi)存空間,所以每個(gè)元素均占有兩個(gè)字節(jié)。
二維數(shù)組的元素也稱為雙下標(biāo)變量,其表示的形式為:
數(shù)組名[下標(biāo)][下標(biāo)]
其中下標(biāo)應(yīng)為整型常量或整型表達(dá)式。例如:
a[3][4]
表示a數(shù)組三行四列的元素。
下標(biāo)變量和數(shù)組說明在形式中有些相似,但這兩者具有完全不同的含義。數(shù)組說明的方括號(hào)中給出的是某一維的長(zhǎng)度,即可取下標(biāo)的最大值;
而數(shù)組元素中的下標(biāo)是該元素在數(shù)組中的位置標(biāo)識(shí)。前者只能是常量,后者可以是常量,變量或表達(dá)式。
4.代碼
1 int main() 2 { 3 /* 4 int ages[5] = {10, 11, 90, 89, 70}; 5 6 int ages2[3][5]= { 7 {10, 11, 90, 89, 70}, 8 9 {10, 11, 90, 89, 70},10 11 {10, 11, 90, 89, 70}12 };*/13 char cs[2][3];14 15 /*16 1 淺藍(lán)色17 2 深藍(lán)色18 3 黃色19 4 紅色20 -1 沒有21 */22 23 int cubes[5][5] = {24 {1, -1, -1, -1, -1},25 {1, 1, -1, 2, -1},26 {4, 1, 2, 2, 2},27 {4, 3, 3, 3, 3},28 {4, 3, 3, 3, 3}29 };30 31 /*32 1 白色33 2 黑色34 -1 沒有35 */36 int wuzi[6][6] = {37 {};38 };39 40 41 return 0;42 }
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注