为什么x[y]==y[x]在c++中

Why does x[y] == y[x] in c++?

本文关键字:c++ 为什么      更新时间:2023-10-16

可能重复:
在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;
}

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

它总是真的(对于正常运算符==(

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

由于int是内在的,并且具有交换运算符==,所以这将始终是真的

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

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

因为x[y]只是*(x + y)的另一种说法,与*(y + x)相同。