什么是0 [p]在做什么?

这个问题在这里已经有了答案:

  • 对于数组,为什么会出现[5] == 5 [a]? 17个答案

  • C标准这样定义了operator []

    无论aba[b]被认为是*((a)+(b))

    这就是为什么0[p] == *(0 + p) == *(p + 0) == p[0]这是数组的第一个元素。


    0[p]相当于p[0] 。 两者都被转换为

    0[p] = *(0+p) and p[0] = *(p+0)
    

    从上面的陈述都是平等的。


    0[p]
    

    0[p] = 42;

    相当于p[0]

    +操作是可交换的,我们有:

    p[0] == *(p + 0) == *(0 + p) == 0[p]
    
    链接地址: http://www.djcxy.com/p/86715.html

    上一篇: What is 0[p] doing?

    下一篇: C++ array[index] vs index[array]