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