C語言程序設計(第5章數(shù)組)2

字號:

5.2 二維數(shù)組
    5.2.1 二維數(shù)組的一般形式
    C語言允許使用多維數(shù)組,最簡單的多維數(shù)組是二維數(shù)組。實際上,二維數(shù)組是以一維數(shù)組為元素構成的數(shù)組,要將d說明成大小為(10,20)的二維整型數(shù)組,可以寫成:
     int d[10][20]
    請留心上面的說明語句, C不像其它大多數(shù)計算機語言那樣使用逗號區(qū)分下標,而是用方括號將各維下標括起,并且,數(shù)組的二維下標均從0計算。
     與此相似,要存取數(shù)組d中下標為( 3,5)的元素可以寫成:
     d[ 3 ][ 5 ]
    在例5 - 3中,整數(shù)1到12被裝入一個二維數(shù)組。
    [例5 - 3 ]
    main ( )
    {
     int t,i,num[3][4]
     for (t=0; t<3; ++t)
     for (i=0;i<4;++i)
     num[t][i] = (t * 4) + i + 1;
    }
    在此例中, num[0][0]的值為1,num[0][2]的值為3, . . . . . .,num[2][3]的值為1 2??梢詫⒃摂?shù)組想象為如下表格:
    0123
    01234
    15678
    29101112
     二維數(shù)組以行—列矩陣的形式存儲。第一個下標代表行,第二個下標代表列,這意味著按照在內存中的實際存儲順序訪問數(shù)組元素時,右邊的下標比左邊的下標的變化快一些。圖5 - 2是一個二維數(shù)組在內存中的情形,實際上,第一下標可以認為是行的指針。
     記住,一旦數(shù)組被證明,所有的數(shù)組元素都將分配相應的存儲空間。對于二維數(shù)組可用下列公式計算所需的內存字節(jié)數(shù):
     行數(shù)×列數(shù)×類型字節(jié)數(shù)=總字節(jié)數(shù)
     因而,假定為雙字節(jié)整型,大小為( 10,5)的整型數(shù)組將需要:10×5×2=100 字節(jié),當二維數(shù)組用作函數(shù)的參數(shù)時,實際上傳遞的是第一個元素(如[ 0 ] [ 0 ])的指針。不過該函數(shù)至少得定義第二維的長度,這是因為C編譯程序若要使得對數(shù)組的檢索正確無誤,就需要知道每一行的長度。例如,將要接收大小為( 10,10)的二維數(shù)組的函數(shù),可以說明如下:
    func1(x)
    int x[ ][10]
    {
    .
    . .
    }