C++ 访问C中的数组元素

C++ 访问C中的数组元素,c++,c,arrays,C++,C,Arrays,今天我遇到了一种访问数组元素的不同方法。我只是好奇它是否是访问数组元素的正确方法 这是我的密码 #include <stdio.h> int main(int argc, char* argv[]) { int arr[4] = {4, 5, 6, 7}; printf ("---> %d \n", 2[arr]); return 0; } 我以为程序不会编译,但它编译了!我试着在Linux和Windows上编译它,它在这两个平台上都运行良好。专家对

今天我遇到了一种访问数组元素的不同方法。我只是好奇它是否是访问数组元素的正确方法

这是我的密码

#include <stdio.h>

int main(int argc, char* argv[])
{
    int arr[4] = {4, 5, 6, 7};
    printf ("---> %d \n", 2[arr]);
    return 0;
}

我以为程序不会编译,但它编译了!我试着在Linux和Windows上编译它,它在这两个平台上都运行良好。专家对此的看法?

这是因为表达式
a[b]
相当于
*(a+b)
,这意味着您可以交换
a
b
的顺序,添加并不重要。

i[arr]==arr[i]
因为
*(arr+i)=*(i+arr)
---> 6