正如 Joel 在 Stack Overflow podcast #34 中指出的那样, 在 C Programming Language (又名:K & R),在 C 中提到了数组的这个属性:a[5] == 5[a]
Joel 说这是因为指针运算,但我还是不明白。 为什么 a[5] == 5[a]
?
最佳答案
C标准定义[]
运算符如下:
a[b] == *(a + b)
因此 a[5]
的计算结果为:
*(a + 5)
和5[a]
将评估为:
*(5 + a)
a
是指向数组第一个元素的指针。 a[5]
是距离a
5 个元素 的值,与*(a + 5)
,从小学数学我们知道它们是相等的(加法是 commutative )。
关于c - 对于数组,为什么 a[5] == 5[a]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46743469/