<分区>
我正在阅读“C++ 编程语言”中有关指针和数组的部分,我遇到了一些让我感到困惑的事情。
For every built-in array
a
and integerj
within the range ofa
, we have:
a[j] == *(&a[0]+j) == *(a+j) == *(j+a) == j[a]
我明白为什么*(&a[0]+j)
和a[j]
的意思是一样的,因为&a[0]
指向 a
的第一个元素,然后按 j
递增。
我还得到 *(a+j)
和 *(j+a)
等于 a[j]
,a从数组隐式转换为指向 a 的第一个元素的指针,然后递增 j 并取消引用。
但是为什么 a[j] == j[a]
?
我错过了什么?