开发者社区 问答 正文

对于数组,为什么会出现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 544 分享
分享
版权
举报
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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等