Dot-Net

按記憶體順序物理排列的矩形陣列

  • August 18, 2017

在 C 中,在數組中說A[2][3]最右邊的索引更改導致最小的記憶體地址偏移,即元素位於記憶體中A[0][0], A[0][1]...

.NET 中的矩形數組也是如此嗎?如果我們有,說數組a[2, 3]是位於記憶體中的元素a[0, 0], a[0, 1]...嗎?

CLI 規範第8.9.1 節規定:

數組元素應在數組對像中以行優先順序排列(即,與最右邊數組維度相關的元素應從最低索引到最高索引連續排列)。為每個數組元素分配的實際儲存空間可以包括特定於平台的填充。

所以答案是肯定的——你會首先遇到第一行的所有元素,然後是第二行的所有元素,等等(正如規範所說,這稱為row-major order)。

引用自:https://stackoverflow.com/questions/10572073