17

如果我这样做*ptr[x],那是否等同于*(ptr[x]), 或(*ptr)[x]?

4

3 回答 3

17

*(ptr[x])

请参阅Wikipedia 运算符优先级表,或者,有关更详细的表,请参阅此 C/C++ 特定表

于 2010-08-24T01:04:32.703 回答
9

在 C 中,所有后缀运算符的优先级都高于前缀运算符,前缀运算符的优先级高于中缀运算符。所以是*(ptr[x])

于 2010-08-24T01:13:31.303 回答
-1

使用逆时针运动分析解析那个简单的例子

1.从ptr开始,逆时针工作,直到你点击星号操作符
2.星号,逆时针方向,直到你点击下标运算符
3. 我们到达这里,在下标运算符 [x]

由于根据此[]具有比星号更高的优先级,这使得它*(ptr[x])

于 2010-08-24T01:07:34.157 回答