使用算术索引数组而不是 explicit/single 值会导致问题吗?
Does indexing an array w/ arithmetic rather than an explicit/single value, cause issues?
a[b]
相当于*(a + b)
,所以...
a[b & c]
其中 &
的运算符优先级低于 +
,这会导致 *(a + b & c)
还是 *(a + (b & c))
?
C Standard, § 6.5.2.1, Array Subscripting 说:
The definition of the subscript operator []
is that E1[E2]
is identical to (*((E1)+(E2)))
请注意 E2
周围的括号。后一个表达式 (*(a + (b & c))
) 是正确的结果。
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))
?
C Standard, § 6.5.2.1, Array Subscripting 说:
The definition of the subscript operator
[]
is thatE1[E2]
is identical to(*((E1)+(E2)))
请注意 E2
周围的括号。后一个表达式 (*(a + (b & c))
) 是正确的结果。
a[b]
是 *((a) +(b))
所以 a[b & c]
是 *((a)+(b & c))
是 *(a+(b & c))
如果你喜欢