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

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

引言:不知道大家有没有遇到过这种情况,在刷题写代码的时候,被一个运算符的优先级弄得头疼,例如下题在这里插入图片描述
题解如下

  • ++ 作为后缀时的优先级比* 高,结合律从左到右。因此D p++ 是先p++, 而后(p++)的。
  • ++作为后缀时优先级和()一样高,结合律从左到右。结合律仅考虑同优先级时。因此(*p)++ 能够先得到1009 然后++。
  • ++ 作为前缀时的优先级和* 一样高, 结合律从右到左, 所以C可以写成++*p == ++(*p)的。

规则如下

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

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

C语言
在这里插入图片描述
C++
在这里插入图片描述

发布了45 篇原创文章 · 获赞 271 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/L19002S/article/details/102960681