一個數組能表示一個班人的年齡,如果想表示很多班呢?
什么是二維數組?int ages[3][10]; 三個班,每個班10個人
相當于3行10列
相當于裝著3個一維數組
二維數組是一個特殊的一維數組:它的元素是一維數組。例如int a[2][3]可以看作由一維數組a[0]和一維數組a[1]組成,這兩個一維數組都包含了3個int類型的元素
二維數組定義的一般形式是:
類型說明符 數組名[常量表達式1][常量表達式2]
其中常量表達式1表示第一維下標的長度,常量表達式2 表示第二維下標的長度。例如:
int a[3][4];
說明了一個三行四列的數組,數組名為a,其下標變量的類型為整型。該數組的下標變量共有3×4個,即:
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]
二維數組在概念上是二維的,即是說其下標在兩個方向上變化,下標變量在數組中的位置也處于一個平面之中,而不是象一維數組只是一個向量。但是,實際的硬件存儲器卻是連續編址的,也就是說存儲器單元是按一維線性排列的。如何在一維存儲器中存放二維數組,可有兩種方式:一種是按行排列, 即放完一行之后順次放入第二行。另一種是按列排列, 即放完一列之后再順次放入第二列。 在C語言中,二維數組是按行排列的。即,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四個元素也是依次存放。由于數組a說明為int類型,該類型占兩個字節的內存空間,所以每個元素均占有兩個字節。
二維數組的元素也稱為雙下標變量,其表示的形式為:
數組名[下標][下標]
其中下標應為整型常量或整型表達式。例如:
a[3][4]
表示a數組三行四列的元素。
下標變量和數組說明在形式中有些相似,但這兩者具有完全不同的含義。數組說明的方括號中給出的是某一維的長度,即可取下標的最大值;
而數組元素中的下標是該元素在數組中的位置標識。前者只能是常量,后者可以是常量,變量或表達式。
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 淺藍色17 2 深藍色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 }
新聞熱點
疑難解答