c++中的一个数组有关问题

c++中的一个数组问题
#include <iostream>
using namespace std;

int main(void){
int a[10]={1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<10;i++){
cout<<i[a]<<" ";//这个程序这里这么写为什么正确呢????????
}//输出 1,2,3,4,5,6,7,8,9,10
  cout<<endl;
return 0;
}

------解决方案--------------------
随便找本书看看就知道了,c primer上好像就有,慢慢去看。
------解决方案--------------------
关键是为啥认为不正确呢

------解决方案--------------------
a[i]<====>*(a+i)
i[a]<====>*(a+i)