为什么在C / C ++数组中a [i] == i [a]?
在这里,我们将看到C或C++的一个惊人技巧。数组下标A[i]也可以写为i[a]。在C/C++中,E1[E2]定义为(*((E1)+(E2)))。编译器在内部执行算术运算以访问数组元素。由于将规则转换为二进制+运算符,因此如果E1是数组对象,而E2是整数,则E1[[E2]表示E1数组中的第E2个元素。因此,可以将A[B]定义为*(A+B),因此B[A]=*(B+A)。所以他们基本上是同一件事。
示例
#include <iostream> using namespace std; int main() { int array[] = {1, 2, 3, 4, 5, 6, 7}; cout << "array[5] is " << array[5] << endl; cout << "5[array] is " << 5[array]; }
输出结果
array[5] is 6 5[array] is 6