【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
*/

 

posted @ 2023-02-13 16:48  尚方咸鱼  阅读(135)  评论(0编辑  收藏  举报