a[b]
等价于
*(a + b)
,所以...a[b & c]
当&
的运算优先级低于+
时,这会导致*(a + b & c)
还是*(a + (b & c))
?
a[b]
*(a + b)
,所以...a[b & c]
当&
的运算优先级低于+
时,这会导致*(a + b & c)
还是*(a + (b & c))
?
下标运算符
[]
的定义为E1[E2]
等同于(*((E1)+(E2)))
请注意 E2
周围的方括号。后面的表达式 (*(a + (b & c))
) 是正确的结果。
a[b]
的含义是*((a)+(b))
,因此a[b & c]
是*((a)+(b & c))
,如果你更喜欢可以写成*(a+(b & c))
注:本段涉及IT技术相关内容