gpt4 book ai didi

c - 对于数组,为什么会出现 a[5] == 5[a] 的情况?

转载 作者:行者123 更新时间:2023-11-30 17:27:46 24 4
gpt4 key购买 nike

正如 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/26272227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com