多维数组与二维数组本质相同,只是维度更多而已。在日常程序设计过程中,高于二维的多维数组使用得不多,故以在线方式提供给读者。
版权声明
本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。
本文不可以以纸质出版为目的进行改编、摘抄。
请见下述示例程序:
1 | //Project - ThreeDim |
上述代码的执行结果为:
1 | a = 000000e0d17ffa50, sizeof(a) = 24 |
🚩第5 ~ 14行:定义了一个2×2×3的三维数组,该数组包含两个2行3列的二维数组。上述代码中可见,a数组的初始化列表用了三层{ }包裹。同样地,该数组被定义时,程序员可以省略0维的元素个数(本例中为2),让编译器从初始化列表中统计,但1维和2维的元素个数(本例中为2和3)不可以省略。
a数组是三维数组的数组名,其维度信息可以表示为(2,3,3);a[0]、a[1]则可视为二维数组的数组名,其维度为(2,3);a[1][1]则可视为一维数组的数组名,它包含3个元素。
🚩第16行:将数组名a以地址/指针格式输出。数组名a为a数组中首元素,即a[0][0][0]的地址。数组a中有2 x 2 x 3 = 12个元素,每个short占2两个字节,故sizeof(a)的返回值为24。
🚩第17行:输出了元素a[1][1][1]的值。该元素的内存地址计算公式与上节所述的二维数组类似。