我今天遇到了一种访问数组元素的不同方式。我只是好奇它是否正确访问数组元素。
这是我的代码,
#include <stdio.h>
int main(int argc, char* argv[])
{
int arr[4] = {4, 5, 6, 7};
printf ("---> %d \n", 2[arr]);
return 0;
}
以下是输出
---> 6
我认为该程序不会编译,但确实如此!我试图在Linux和Windows上编译它,它在两者上工作正常。专家对此有何见解?
答案 0 :(得分:3)
这是有效的,因为表达式a[b]
相当于*(a + b)
,这意味着你可以交换a
和b
的顺序,这个加法并不关心