私は配列exを持っています:
int array[3][5];
その配列の要素に値を割り当てたい場合は、簡単です...例:
array[1][2] = 8;
しかし、ポインタ演算で表現したいのですが、これは正しいでしょうか?
**(array + 5 * 1 + 2) = 8;
どちらの場合も、7 番目の位置を探しています... (code) の外側に 2 番目の * を含める必要があるかどうかはわかりません
**(code)
編集:フォローアップのほんの少し。これを手伝ってくれたすべての人に感謝します。私が混乱したのは、インストラクターのメモの間違いによるものでした。あなたが提供した情報を私が提示した後、彼は間違いに気づき、次のことに同意しました。
*(*(array+row)+col)
また
*(*array+MAX_COL*row+col)
は、2 次元配列の正確なポインター演算表現です。
これ**(array+MAX_COL*row+col)
は、 James Kanzeがこの投稿への返信の 1 つで言及したarray[MAX_COL*row+col]
ように、多次元配列の 1 次元配列実装で使用される のようなものです (2 番目のものは最初のものよりも高速です)。