为什么在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

以上是 为什么在C / C ++数组中a [i] == i [a]? 的全部内容, 来源链接: utcz.com/z/327324.html

回到顶部