【C++复习】运算符优先级(简)

只讨论个大概,不管细节
不同优先级的运算符混在一起,就根据优先级算
相同优先级的运算符混在一起,就看它们的结合性(这里不谈)

一定要记住:括号>基本计算>关系>逻辑>底层选手

1、运算符有哪些?

  1. 单目运算符
    1. *
    2. ++自增,有前置和后置
    3. --自减,有前置和后置
    4. !逻辑非
    5. +正号
    6. -负号
  2. 双目运算符/三目运算符
    1. 算术运算符
      1. +
      2. -
      3. *
      4. /
      5. %
    2. 移位运算符
      1. <<
      2. >>
    3. 关系运算符
      1. <
      2. <=
      3. >
      4. >=
      5. ==
      6. !=
    4. 位运算符(按位进行逻辑计算)
      1. &
      2. |
      3. ^
    5. 逻辑运算符(依据表达式进行逻辑计算)
      1. &&
      2. ||
    6. 条件运算符(三目)?:
    7. 赋值运算符
      1. =
      2. *=
      3. /=
      4. %=
      5. +=
      6. -=
      7. <<=
      8. >>=
      9. &=
      10. ^=
      11. |=
    8. 逗号运算符,

2、运算符优先级原则(一般场景)

  1. 底层选手:逗号运算符赋值运算符优先级最低,之后就是三目运算符双目逻辑运算符
  2. 一般情况下的法则
    1. 单目>双目>三目
    2. 括号>基本计算>关系>逻辑>底层选手
    3. 注意按位逻辑运算符关系运算符

3、常见运算场景

经典数值判断(算数>关系>双目逻辑)

a+2>3&&b-a>4
//相当于
( (a+2) > 3 )  &&  ( (b-a) > 4 )

经典三目运算符应用

ans=a>b?a:b
//相当于
ans = ( (a>b) ? a:b )

 关系>按位运算

3&4!=2
//等价于
3&(4!=2)
//3与1进行按位与运算,结果为1

z=x<y?x++:y++

int x = 1, y = 2, z = 66;
z = x < y ? x++ : y++;
/*等价于
if(x<y) z=x++;
else z=y++;
*/
/*运行结果:
x=2,y=2,z=1
*/

 

原文链接: https://www.cnblogs.com/FishSmallWorld/p/17116926.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    【C++复习】运算符优先级(简)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/317737

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月16日 下午2:49
下一篇 2023年2月16日 下午2:50

相关推荐