【发布时间】:2011-08-20 17:27:02
【问题描述】:
我了解 C 中的数组是按行优先顺序分配的。因此,对于 2 x 3 数组:
0 1
2 3
4 5
存储在内存中
0 1 2 3 4 5
但是,如果我有一个 2 x 3 x 2 数组怎么办:
0 1
2 3
4 5
和
6 7
8 9
10 11
这些是如何存储在内存中的?就像是连续的:
0 1 2 3 4 5 6 7 8 9 10 11
还是其他方式?还是取决于什么?
【问题讨论】:
-
问题中的第一个数组实际上是 3x2,例如
int a[3][2]; -
@Alexey:这很有趣——也许这就是我困惑的根源。 C 中的数组是否应该声明为
array[ny][nx],其中ny和nx是y 和x 方向的元素数。此外,这是否意味着我的 3D 数组应该声明为array[nz][ny][nx]?