什么是0 [p]在做什么?
这个问题在这里已经有了答案:
C标准这样定义了operator []
:
无论a
和b
是a[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?