矩形阵列物理内存顺序

时间:2012-05-13 13:18:35

标签: .net arrays memory multidimensional-array

在C中,在数组中说A[2][3]最右边的索引更改导致内存地址移位最小,即元素在内存中位于A[0][0], A[0][1]...

.NET中的矩形数组是否也是如此?如果我们有,那么数组a[2, 3]是位于内存中的元素a[0, 0], a[0, 1]...

1 个答案:

答案 0 :(得分:18)

CLI specification,第8.9.1节,声明:

  

数组元素应以row-major的形式放置在数组对象中   顺序(即与最右边的数组相关联的元素)   尺寸应从最低到最高连续布置   指数)。为每个数组元素分配的实际存储空间可以   包括特定于平台的填充。

所以答案是肯定的 - 你将首先遇到第一行的所有元素,然后是第二行的所有元素等(正如规范所说,这称为行主要顺序 )。