仕様:6.5.2.1 Array subscripting
連続添字演算子は多次元配列オブジェクトの要素を指定します。 Eが次元i×j×...×kのn次元配列(n≧2)である場合、E(lvalue以外の として使用される)は(n-1) - 次元j×...×kの2次元配列。単項演算子*がこのポインタに明示的に適用される場合、または添字の結果暗黙的に に適用される場合、結果は参照される(n-1)次元の 配列であり、それは左辺以外の値として使用される場合にはポインタに変換されます。 。配列は行優先順位で格納されます(最後の添字は最も速く変化します)。
Cは、プログラマが多く行うことができる言語です。たとえば、IndexOutOfBoundsError
はありません。配列は最初のセルへのポインタに過ぎず、配列長の次のセルの予約があります。
int [79] [24]を宣言すると、79 * 24セルの予約が行われます。彼らは一つずつ行く。配列のディメンションが79x24の場合、最初のディメンションでは0〜78、2番目のディメンションでは0〜23のインデックスが使用されます。アドレス34,24のセルは実際には34,23の後に1つあり、メモリの35,0である。
のは、サイズ6x4販売のアレイ上の例を持ってみましょう:
Your array represented as expected by you with values:
+---+---+---+---+---+---+---+
| | 0 | 1 | 2 | 3 | 4 | 5 |
+---+---+---+---+---+---+---+
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+---+
| 1 | 0 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+---+
| 2 | 0 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+---+
| 3 | 0 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+---+
Your array with cell adresses (where start is the adress of cell 0,0):
+---+------------+------------+------------+------------+------------+------------+
| | 0 | 1 | 2 | 3 | 4 | 5 |
+---+------------+------------+------------+------------+------------+------------+
| 0 | start | start + 1 | start + 2 | start + 3 | start + 4 | start + 5 |
+---+------------+------------+------------+------------+------------+------------+
| 1 | start + 6 | start + 7 | start + 8 | start + 9 | start + 10 | start + 11 |
+---+------------+------------+------------+------------+------------+------------+
| 2 | start + 12 | start + 13 | start + 14 | start + 15 | start + 16 | start + 17 |
+---+------------+------------+------------+------------+------------+------------+
| 3 | start + 18 | start + 19 | start + 20 | start + 21 | start + 22 | start + 23 |
+---+------------+------------+------------+------------+------------+------------+
問題を示す[最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)を投稿してください。入力、期待される出力、実際の出力の例を示します。 –