位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C語(yǔ)言 > 問(wèn)題詳情

C語(yǔ)言 二維數(shù)組的定義

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-30

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軸的立體空間。


繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部