对于数组,为什么a[5] == 5[a]?
C 标准对[]运算符的定义如下:
[]
a[b] == *(a + b)
因此a[5]将评估为:
a[5]
*(a + 5)
并将5[a]评估为:
5[a]
*(5 + a)
a是指向数组第一个元素的指针。a[5]是距离 5 个元素的值,与相同a,*(a + 5)从小学数学我们知道它们是相等的(加法是可交换的)。
a