C語言 二維數(shù)組的定義
1.二維數(shù)組的定義形式
二維數(shù)組的一般定義形式為:
類型標識符 數(shù)組名[行常量表達式][列常迢表達式];
例如:
int a[3][4],b[2] [3];
定義了兩個二維數(shù)組,數(shù)組a有3行4列共12個元素,而數(shù)組b有2行3列共6個元素。
2.說明
(1 )二維數(shù)組的邏輯形式雖然由行、列的組成,例如數(shù)組a[3][4]的邏輯形式如圖所示,但實際上,二維數(shù)組元素在內(nèi)存中也是順序存放的,排列順序為“按行存放”,即先順序存放第一行的元素,再存放第二行……以此類推,如圖所示。
第0列 | 第1列 | 第2列 | 第3列 | |
第0行 | a[0][0] | a[0][1] | a[0][2] | a[0][3] |
第1行 | a[1][0] | a[1][1] | a[1][2] | a[1][3] |
第2行 | a[2][0] | a[2][1] | a[2][2] | a[2][3] |
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] |
(2)通過圖可知,設(shè)有一個mxn的數(shù)組x,則第i行第j列的元素x[i][j]在數(shù)組中的位置為:i*n+j。(注意:行號、列號均從0開始計數(shù))
(3)其實,C語言對于二維數(shù)組,可以理解成數(shù)組的數(shù)組,即把二維數(shù)組看成一個特殊的一維數(shù)組。例如有定義int a[3][4];可認為數(shù)組a中包含3個元素a[0]、a[1]、a[2],其第一個元素a[0]也是一個數(shù)組——包含4個int數(shù)據(jù)的一維數(shù)組,所以該二維數(shù)組a是由三個“特殊的”元素組成的一個“特殊的”一維數(shù)組。a[0]、a[1]、a[2]分別代表該數(shù)組中的三個元素(三行),每行又是一個數(shù)組,包含4 個元素。這樣的理解對于以后掌握指針的概念非常有好處。
3.多維數(shù)組的定義
有了二維數(shù)組的定義,多維數(shù)組的定義和二維數(shù)組差不多,格式為:
類型標識符 數(shù)組名[常II表達式1][常量表達式2][常量表達式3]...[常量表達式n];
例如,定義一個三維數(shù)組:
int a [2] [3] [2];
聲明了一個三維數(shù)組,其中,第一個下標取值范圍為: 0?1,第二個下標取值范圍為0?2,第三個下標取值范圍為0?1。數(shù)組中共包含2x3x2=12個元素,分別是:
A[0][0][0] A[0][0][1] A[0][1][0] A[0][1][1] A[0][2][0] A[0][2][1]
A[1][0][0] A[1][0][1] A[1][1][0] A[1][1][1] A[1][2][0] A[1][2][1]
多維數(shù)組在內(nèi)存中也是順序存放的。
如果說一維數(shù)組可以理解成數(shù)軸上的一段范圍,每個元素代表數(shù)軸中的一個刻度;二維數(shù)組可以理解成表格,或平面直角坐標系的一段空間;三維數(shù)組則可以理解成有x軸、y軸、z軸的立體空間。
點擊加載更多評論>>