为什么c ++中的x == y ?

可能重复:
在C数组中为什么这是真的? a [5] == 5 [a]

有人告诉我这个…我起初并不相信它们,但确实有效。 如果x和y在整个代码中没有变化,为什么这会起作用:

int x [5] = { 0,1,2,3,4}; int y = 3; if(x[y] == y[x]){ cout << "Why..." << endl; } 

x数组在索引y中的值是如何=数组y中的x索引值? 但是没有yarrays。

它总是正确的(对于普通算子==)

 a[i] --> *(a+i) --> *(i+a) --> i[a] 

因为int是内在的并且具有可交换运算符==,所以这总是正确的

因为以下所有内容都是相同的:

 x[y] == y[x] == *(x+y) == *(y+x) 

因为x[y]只是说*(x + y)另一种方式,而且与*(y + x)