【C/C++】---运算符优先级

【C/C++】—运算符优先级

引言:不知道大家有没有遇到过这种情况,在刷题写代码的时候,被一个运算符的优先级弄得头疼,例如下题【C/C++】---运算符优先级
题解如下
++ 作为后缀时的优先级比* 高,结合律从左到右。因此D p++ 是先p++, 而后(p++)的。

++作为后缀时优先级和()一样高,结合律从左到右。结合律仅考虑同优先级时。因此(*p)++ 能够先得到1009 然后++。

++ 作为前缀时的优先级和* 一样高, 结合律从右到左, 所以C可以写成++*p == ++(*p)的。

规则如下
1.优先级最高的,是作用域运行符;
2.后自增与自减运算符 与 成员访问运算符 排第二;
3.排在第三的是值处理运算符与动态内存的分配、释放;
接下来的按照这个顺序排列:算术运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符

附上运算符与用法图(来自百度百科)

C语言
【C/C++】---运算符优先级
C++
【C/C++】---运算符优先级