C では、配列でA[2][3]
右端のインデックスの変更が最小のメモリ アドレス シフトになるとします。つまり、要素は次のようにメモリ内に配置されます。A[0][0], A[0][1]...
.NET の長方形配列にも同じことが当てはまりますか? ある場合、配列a[2, 3]
はメモリ内にある要素であるとしますa[0, 0], a[0, 1]...
か?
C では、配列でA[2][3]
右端のインデックスの変更が最小のメモリ アドレス シフトになるとします。つまり、要素は次のようにメモリ内に配置されます。A[0][0], A[0][1]...
.NET の長方形配列にも同じことが当てはまりますか? ある場合、配列a[2, 3]
はメモリ内にある要素であるとしますa[0, 0], a[0, 1]...
か?
CLI 仕様のセクション 8.9.1 には、次のように記載されています。
配列要素は、行優先順で配列オブジェクト内に配置されます (つまり、最も右の配列次元に関連付けられた要素は、最小インデックスから最大インデックスまで連続して配置されます)。各配列要素に割り当てられる実際のストレージには、プラットフォーム固有のパディングを含めることができます。
したがって、答えはイエスです。最初に最初の行のすべての要素に遭遇し、次に 2 番目の行のすべての要素に遭遇します (仕様にあるように、これは行優先順序と呼ばれます)。