【发布时间】:2013-08-01 13:49:32
【问题描述】:
我偶尔会使用多维数组,并且好奇标准(C11 和/或 C++11)对使用比为数组声明的“维度”更少的“维度”进行索引的行为。
给定:
int a[2][2][2] = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}};
标准是否说明a[1] 或a[0][1] 是什么类型,是否合法,是否应按预期正确索引子数组?
auto& b = a[1];
std::cout << b[1][1];
【问题讨论】:
-
这个答案可能会有所帮助:Difference between
char* str[]andchar str[][]and how both stores in memory?我已经解释了二维 -
看看
sizeof(m[1]),sizeof(m[0][1])你就知道了。 -
@GrijeshChauhan,谢谢,但我只是在寻找标准参考,而不是编译器行为。
标签: c++ c multidimensional-array language-lawyer