位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

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

提問人:劉團圓發(fā)布時間:2020-11-30

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


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

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