0

我在不同的编译器中尝试了很多次,但结果相同。我的问题是:

在 C++ 中,作为, thenint a[10];的声明给出,其含义相同。我声称:aa[0]0[a]

cout << a[0]; 

是相同的

cout << 0[a];

请向我解释为什么与C++ 中a[i]的相同,其中是整数。i[a]i

4

2 回答 2

4

因为数组索引操作在内部被解释为*(a+i).

于 2013-06-29T21:11:32.077 回答
0

假设我声明了一个数组:int a[10];现在a表示数组在内存中开头的某个内存地址,您可以将索引视为该内存地址的偏移量。

所以在对数组应用索引操作时,其值的定义如下:a[i] = *(a+i)通过加法的交换性,可以看出是a[0] = 0[a]因为语言是如何定义索引操作的。

于 2013-06-29T21:18:53.303 回答