5.1.6 多维数组
多维数组是指数组的维数大于二维的数组。在C51中允许使用大于二维的数组,不同的编译环境限制了维数最大取值。多维数组的一般说明形式如下。
类型说明符数组名[常量表达式1][常量表达式2]……[常量表达式n]
典型的多维数组的声明,示例如下。
int num[2][3][4][5];//定义4维整型数组
char str[6][7][8];//定义3维字符型数组
多维数组在存储时,占用字节数的计算同二维数组一样。例如,大小为(3,10,9,4)的四维整型数组,所需的存储空间为3×10×9×4×2=2160字节。如果这个数组是字符型数组,则需要3×10×9×4×1=1080字节的存储空间。
当多维数组被定义之后,数组内所有的数组元素都将被分配相对应的地址空间。多维数组所占的存储空间大小随着维数的增加呈指数增长。因此使用多维数组,将占用大量单片机的内存,在实际的程序设计中应尽量减少使用大于二维的多维数组。
多维数组和二维数组的初始化和访问规则相同,因为其使用较少,这里不再具体介绍。此处需要指出的是,在访问多维数组时,单片机的CPU要花大量时间来计算多维数组的下标,这样对多维数组的访问要比访问一维数组花去更多的CPU时间。