前回のまとめ 1 : ポインター型配列 二次元配列 ( int darray[M][N] ) C 言語上は「配列の配列」として実現される darray[i] は、 int[N] 型の配列へのポインタ値 一般に n 次元配列は、「n-1 次元配列」の配列 メモリーモデル上は一次元配列 ( int sarray[M*N] ) と同じ 左の添字を増やす : アドレス値を sizeof (int[N]) だけ増やす 右の添字を増やす : アドレス値を sizeof (int) だけ増やす darray[i]のサイズが固定(i に無関係に一定)になっている点がミソ アドレス値の計算を、 C 言語に任せれば利便性が得られる ポインター型配列 ( int *parray[M] ) ポインター型変数の配列 ( parray[i] はポインター型変数 ) (∀i) parray[i] = darray[i] とすれば、parray は darray の別名になる parray[i] の値を規則的にしなければ、色々な形が表現可能 cf. pascal の三角形など アドレス値の計算を、自分で行えば柔軟性が得られる