正如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
相同的,距*(a + 5)
5个元素的值,从小学数学我们知道它们是相等的(加法为commutative)。
关于c - 对于数组,为什么会出现a [5] == 5 [a]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54380287/