多维数组
文章类别:
C语言程序设计 | 发表日期:2008-9-24 14:20:38
C语言答应有大于二维的数组,维数的限制(假如有的话)是由具体编译程序决定的。多
维数组的一般说明形式为:
Type-specifier name [a][b][c]...[z];
由于大量占有内存的关系,二维或更多维数组较少使用。如前所述,当数组定义之后,
所有的数组元素都将分配到地址空间。例如,大小为( 1 0,6,9,4)的四维字符数组需要1 0
×6×9×4即2 1 6 0字节。
假如上面的数组是两字节整型的,则需要4 3 2 0字节,若该数组是双字型的(假定每个双
字为8字节)则需要3 4 5 6 0字节,存储量随着维数的增加呈指数增长。
关于多维数组,需要注重一点:计算机要花大量时间计算数组下标,这意味着存取多维
数组中的元素要比存取一维数组的元素花更多的时间。由于这些和其它原因,大量的多维数
组一般采用C语言动态分配函数及指针的方法,每次对数组的一部分动态地分配存储空间。
多维数组传递给函数时,除第一维外,其它各维都必须说明。例如,将数组m定义成:
int m[4][3][6][5];
那么接收m的函数应写成:
func1 (d)
int d[][3][6][5];
当然,假如愿意,也可加上第一维的说明。