矩形阵列物理内存顺序

Pet*_*lin 11 .net memory arrays multidimensional-array

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

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

Jon*_*Jon 20

CLI规范,第8.9.1节,规定:

数组元素应按行主要顺序排列在数组对象中(即,与最右边的数组维度相关的元素应从最低到最高的索引连续排列).为每个数组元素分配的实际存储可以包括特定于平台的填充.

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

  • 谢谢,是懒得找到自己!:) (2认同)