C语言程序设计(第5章数组)3
5.3多维数组
C语言允许大于二维的数组,维度的限制(如果有的话)由具体的编译器决定。多维的一般描述形式是:
类型说明符名称[a] [b] [c]...[z];
二维或多维数组很少使用,因为它们占用大量内存。如前所述,定义数组后,所有数组元素都将被分配到地址空。比如一个大小为(10,6,9,4)的四维字符数组,需要10×6×9×4,即2160字节。
如果上面的数组是两个字节的整数,需要4320个字节;如果数组是双字(假设每个双字8字节),则需要34560字节。存储容量随着维度的增加呈指数增长。
关于多维数组需要注意的一点是,计算机要花费大量的时间来计算数组下标,这意味着访问多维数组中的元素比访问一维数组中的元素花费更多的时间。由于这些和其他原因,大量的多维数组一般采用C语言动态分配函数和指针的方法,每次动态分配存储空给数组的一部分。
将多维数组传递给函数时,必须解释除第一维度以外的所有维度。例如,将数组M定义为:
int M[4][3][6][5];
那么接收M的函数应该写成:
func 1(d)
int d[][3][6][5];
当然,如果你愿意,还可以添加第一维度的描述。
0条评论