关于C++运算顺序的疑问

img


这一题答案是16。
但是我觉得,->优先级最高,应该是算完了所有的pn->b,再进行++啥的。所以我写的是 12。

->优先级最高,所以把“pn->b”看成一个整体就好了,例如把“pn->b”看成a,整个式子就是++aa/1,先进性a的自增,然后再将a的值用于计算这个式子,所以就是44=16

++i 前自增的优先级最高的,比i++高

C语言的运算符包括单目运算符、双目运算符、三目运算符,优先级如下:

第1优先级:各种括号,如()、[]等、成员运算符 . ;

第2优先级:所有单目运算符,如++、–、!、~等;

第3优先级:乘法运算符*、除法运算符/、求余运算符%;4优先级:加法运算符+、减法运算符-;

第5优先级:移位运算符<<、>>;

第6优先级:大于运算符>、大于等于运算符>=、小于运算符<、小于等于运算符<=;

第7优先级:等于运算符==、不等于运算符!=;

第8优先级:按位与运算符&;

第9优先级:按位异或运算符^;

第10优先级:按位或运算符|;

第11优先级:逻辑与运算符&&;

第12优先级:逻辑或运算符||;

第13优先级:三目条件运算符 ?: ;

第14优先级:各种赋值运算符,如=、+=、-=、*=、/= 等;

第15优先级:逗号运算, 。