【发布时间】:2017-10-21 13:36:05
【问题描述】:
假设我们有一个数组 a[90][30][40],其中第一个元素从 a[1][1][1] 开始,那么 a[20][20][30] 的索引是多少在列主要表示中?
根据我的说法,a[x][y][z] 表示 x 是深度,y 是行,z 是列。
所以在我看来,索引应该是 19(30)(40) + (29)(30) + (20-1) = 23689。
我读到https://eli.thegreenplace.net/2015/memory-layout-of-multi-dimensional-arrays/ 说 a[x][y][z] 实际上意味着 x 是行,y 是列,z 是深度。
我在这里阅读了所有现有答案以及上面的链接并感到困惑。
我的计算正确吗?
【问题讨论】:
-
第一个元素其实是
a[0][0][0]。 -
您自己尝试解决什么问题 - 可能什么都没有。
-
@PeterJ_01 你还想让我解决什么问题?我展示了计算结果以及我阅读的链接。
-
做一些实验。这才是正确的学习方式
-
公式也在您发布的链接中,给定
int a[rows][cols][layers];,元素a[i][j][k]的偏移量为k + layers * (j + cols * i)。
标签: c arrays multidimensional-array indexing