C中取消引用和括号引用的操作顺序
如果我做*ptr[x]
,那相当于*(ptr[x])
,还是(*ptr)[x]
?
*(ptr[x])
请参阅Wikipedia运算符优先级表 ,或者,对于更详细的表,请参阅此C / C ++特定表 。
在C中,所有后缀运算符的优先级都高于前缀运算符,前缀运算符的优先级高于中缀运算符。 所以它的*(ptr[x])
使用逆时针运动分析和解析这个简单的例子
1.从ptr开始,逆时针工作直到你击中星号运算符 2.星号,逆时针方向,直到你点击下标操作符 我们到了这里,下标操作符[x]
由于[]
优先级高于此表的星号,因此*(ptr[x])