C語言程序設計(第5章數組)3

字號:

5.3 多維數組
     C語言允許有大于二維的數組,維數的限制(如果有的話)是由具體編譯程序決定的。多維數組的一般說明形式為:
     Type-specifier name [a][b][c]...[z];
     由于大量占有內存的關系,二維或更多維數組較少使用。如前所述,當數組定義之后,所有的數組元素都將分配到地址空間。例如,大小為( 10,6,9,4)的四維字符數組需要10×6×9×4即2160字節(jié)。
     如果上面的數組是兩字節(jié)整型的,則需要4320字節(jié),若該數組是雙字型的(假定每個雙字為8字節(jié))則需要34560字節(jié),存儲量隨著維數的增加呈指數增長。
     關于多維數組,需要注意一點:計算機要花大量時間計算數組下標,這意味著存取多維數組中的元素要比存取一維數組的元素花更多的時間。由于這些和其它原因,大量的多維數組一般采用C語言動態(tài)分配函數及指針的方法,每次對數組的一部分動態(tài)地分配存儲空間。
     多維數組傳遞給函數時,除第一維外,其它各維都必須說明。例如,將數組m定義成:
     int m[4][3][6][5];
     那么接收m的函數應寫成:
     func1 (d)
     int d[][3][6][5];
     當然,如果愿意,也可加上第一維的說明。