开发者社区> 问答> 正文

对于数组,为什么会出现a [5] == 5 [a]?

正如Joel 在C编程语言(又名:K&R)中的Stack Overflow Podcast#34中指出的那样,在C中提到了数组的此属性:a[5] == 5[a]

乔尔(Joel)说,这是因为指针运算,但是我还是不明白。为什么a[5] == 5[a]呢

展开
收起
保持可爱mmm 2020-01-08 15:53:42 528 0
1 条回答
写回答
取消 提交回答
  • C标准将[]运算符定义如下:

    a[b] == *(a + b)

    因此a[5]将评估为:

    *(a + 5)

    并且5[a]将计算为:

    *(5 + a)

    a是指向数组第一个元素的指针。a[5]是距,与相同的5个元素的值,从小学数学我们知道它们是相等的(加法是可交换的)。a*(a + 5)

    问题来源于stack overflow

    2020-01-08 15:56:16
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载