为什么在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 65[array] is 6
以上是 为什么在C / C ++数组中a [i] == i [a]? 的全部内容, 来源链接: utcz.com/z/327324.html