C Pointer and Array

代码片段:

int a[5] = {1,2,3,4,5};

printf("%d\n%d\n",a[3],3[a]);

a[3] 的值居然和 3[a] 相同,都是4,真是不可思议,C 数组能这样定义?

谜底揭开:

在 C 语言中,a[i] = *(a+i)

所以,a[i] = *(a+i) = *(i+a) = i[a]

有趣哈 :D

参考:我在 CSDN 论坛上的提问