【學習筆記】【C語言】二維數組,學習筆記二維數組
1. 什麼是二維數組
一個數組能表示一個班人的年齡,如果想表示很多班呢?
什麼是二維數組?int ages[3][10]; 三個班,每個班10個人
相當於3行10列
相當於裝著3個一維數組
二維數組是一個特殊的一維數組:它的元素是一維數組。例如int a[2][3]可以看作由一維數組a[0]和一維數組a[1]組成,這兩個一維數組都包含了3個int類型的元素
2.二維數組的定義
二維數組定義的一般形式是:
類型說明符 數組名[常量運算式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類型,該類型佔兩個位元組的記憶體空間,所以每個元素均佔有兩個位元組。
3.二維數組元素的引用
二維數組的元素也稱為雙下標變數,其表示的形式為:
數組名[下標][下標]
其中下標應為整型常量或整型運算式。例如:
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 }