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

可能重复:
在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索引值? 但是没有y阵列。


它总是如此(对于普通的operator ==)

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

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


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

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

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

链接地址: http://www.djcxy.com/p/86733.html

上一篇: Why does x[y] == y[x] in c++?

下一篇: integer indexed with a string in c++