たとえば
t[i]
、*(t+i)
それはどうなります
t[i][j]
か?
私の意見 *(*(t+i)+j)
では、確かではありません。
はい、あなたが持っているものは正しいです。t[i][j]
のように記述できる(t[i])[j]
ため、「1D」ルールを再帰的に適用できます。
ポインタを操作したいので、データがメモリにどのように格納されているかを知る必要があります。2 次元配列の場合、大きな違いはありません。「行」は、アプリがスキップする必要がある「セル」の数を示しているだけです。
しばらくの間、それは整数であると仮定しましょうt
。したがって、配列がある場合、次のようになります。
|3|4|5|
|6|5|4|
実際には次のようになります
|3|4|5|6|5|4|
メモリに保存されているとおりです。array は、プログラムが array の 3 番目の値の後で「スキップ」する必要があることを意味し、次のようx[3][2]
になります。t[i][j]
*(*(t+i)+j)
はい、あなたが正しい。t[i][j]
と同等*(*(t + i) + j)
です。