タイトルのようなことを『C/C++によるプログラミングスタイルブック』という本で読んだのでメモ。 #include <stdio.h> int main(void) { int array[5] = {3, 5, 7, 9, 11}; if(array[3]==3[array]){ printf("array[3]:%d\n3[array]:%d\n", array[3], 3[array]); } } 以下、結果 というのも、添字式の”array[index]”は”*((array)+(index))”で評価されるかららしい。つまり、足し算だから逆から足しても同じ結果になるということだそうだ。 ちなみに、文字列は文字の配列なので以下のようなことも。 #include <stdio.h> int main(void) { printf("\"abcde\"[3]:%c\n", "abcde