考虑下面的程序。
非常简单的程序.. 呵呵... 输出将为 0。
现在,如果您将arr[0]替换为0[arr],则输出将相同。因为编译器在访问数组元素之前将数组操作转换为指针。
例如arr[0]将是*(arr + 0),因此 0[arr] 将是*(0 + arr)并且您知道*(arr + 0)和*(0 + arr)是相同的。
int main( )
{
int arr[2] = {0,1};
printf("First Element = %dn",arr[0]);
getchar();
return 0;
}