array[n] == n[array] ???

ここに書いてあることは,知っていなくてもいいことなんだけど...


「 *(array + n) は array[n] のことである」と言ったけど,これは本当は違う.
本当は,
「 array[n] は *(array + n) のことである」というのが正解である.
もう少し正確に言うと,
「ソースコードに a[b] と書いてあると,それは *(a + b) と翻訳される」ということである.


そこで,次のような不思議なことが起る.

もしも,n[array] と書いたとしよう.これは *(n + array) と翻訳される.
そして,*(n + array) は *(array + n) と同じものなので,これは array[n] と同じものになる.

実際,array[5] と書く代わりに 5[array] と書いても良く,

5[array] = 3;

という代入文は, array[5] = 3; と同じ意味を持つ.



でも,本当に,こんなことは知らなくてもいいんですよ.