C / C ++:使用int i ,为什么i 与2 相同?

我才知道这个伎俩。

在C ++中:

#include  using namespace std; int main() { int i[3]={5,7,11}; cout << 2[i]; return 0; } 

在C:

 #include  int main(void) { int i[3]={5,7,11}; printf("%d", 2[i]); return 0; } 

是的,这些是允许的,两个输出都是11。

为什么我[2]可以表达为2 [i]?

 a[i] = i[a] *(a+i) = *(i+a) 

因此两者都是相同的并且是有效的。