一个简单有关问题

一个简单问题
int   a[]={1,2,3,4,5,6,7,8,9};
int   i=5;

有以上定义,那么i[a]是什么意思?为什么i[a]==a[i]?编译器是怎么解析的?

------解决方案--------------------
C/C++语言中,一个整数a跟一个地址b,谁在中括号前面、谁在中括号里边无所谓。
表达的都是“*(a + b)”的含义,这样处理的原因可能是由于“*(a + b)”和“*(b + a)”本身就是等效的。