CではArray[n]==n[Array]


タイトルのようなことを『C/C++によるプログラミングスタイルブック』という本で読んだのでメモ。

以下、結果

array[3]:9
3[array]:9

というのも、添字式の”array[index]”は”*((array)+(index))”で評価されるかららしい。つまり、足し算だから逆から足しても同じ結果になるということだそうだ。

ちなみに、文字列は文字の配列なので以下のようなことも。

以下、結果

“abcde”[3]:d
3[“abcde”]:d

上の”文字列”[index]という書き方は知ってたけど、下は知らなかった。

まあ、使う機会なさそうだけど(読んだ本にもこんな分かりにくい書き方をするなという例で書いてあった)。

コメントを残す

メールアドレスが公開されることはありません。