次の2次元配列を検討してください。
int array[2][2] = {
{1,2},
{3,4}
};
私の理解によると:-'array'は、2次元配列のベースアドレスを表します(これは、配列の最初の要素のアドレス、つまりarray [0] [0]と同じです)。
メモリ内の2Dアレイの実際の配置は、大きな1Dアレイのみのようなものです。
これで、ベースアドレス=配列であることがわかりました。したがって、要素array[0][0]を含むメモリブロックに到達できるはずです。
2次元配列のことを忘れて、この配列を単純な1次元配列として処理しようとすると、array [0] = *(array + 0)は、要素array [0ではなく、最初の配列のベースアドレスを示します。 ][0]。なんで?
2次元配列は、(ポインタの配列のように)メモリアドレスを格納しません。
ベースアドレスがわかっている場合は、このメモリに線形1次元配列としてアクセスできる必要があります。
この疑問を明確にするのを手伝ってください。
ありがとう。