手记

【备战春招】第十天运算符优先级

课程内容:

赋值符合运算符

运算符 功能说明 示例

+= 加法赋值复合运算符 a+=b 等价于 a = a + b

-= 减法赋值复合运算符 a-=b 等价于 a = a - b

= 乘法赋值复合运算符 a=b 等价于 a = a * b

/= 除法赋值复合运算符 a/=b 等价于 a = a / b

%= 求余赋值复合运算符 a%=b 等价于 a = a % b

&= 位与赋值复合运算符 a&=b 等价于 a = a & b

|= 位或赋值复合运算符 a|=b 等价于 a = a | b

^= 位异或赋值复合运算符 a^=b 等价于 a = a ^ b

= 位右移赋值复合运算符 a>>=b 等价于 a = a >> b

<<= 位左移赋值复合运算符 a<<=b 等价于 a = a << b

逗号运算符与三目运算符

逗号运算符

ret = 表达式1,表达式2,表达式3,…,表达式n

功能:按顺序执行表达式,并将表达式n的结果,作为整个表达式的值赋值给ret。

在所有的运算符中,逗号表达式的优先级最低。

三目运算符

ret = 表达式1 ? 表达式2 : 表达式3 ;

功能:判断表达式1是否为真,若是为真则执行表达式2,并把表达式2最终的结果复制给ret,否则,就执行表达式3,并把表达式3最终的结果复制给ret,

示例用法

int a = 8,b = 2

ret = a > b ? a + b : a - b;

pritnf(“ret = %d\n”,ret);//10

运算符优先级

优先级规律

优先级 运算符及含义 结合规律

1 [ ] () -> 后缀++ 后缀– 从左向右

2 前缀++ 前缀-- sizeof & * + -(负号) ~ ! 从右向左

3 强制类型转换 从右向左

4 * / % (算术乘除) 从左向右

5 + - (算数加减) 从左向右

6 << >> (位移) 从左向右

7 < <= > >= 从左向右

8 == != 从左向右

9 &(位逻辑与) 从左向右

10 ^(位逻辑异或) 从左向右

11 | (位逻辑或) 从左向右

12 && 从左向右

13 || 从左向右

14 ? : (三目运算符) 从左向右

15 = ^= /= %= += -= <<= >>= &= ^= != 从右向左

16 , (逗号运算符) 从左向右

速记口诀

初等单目一二级

//初等运算符和单目运算符分别是第1、2优先级

乘除求余加减移

//这句里面的运算符全归为算术运算符,移表示移位

关系等于不等于

//关系运算符(< <= > >=)

按位与来异或或

//位运算符优先级顺序:& -> ^->l

逻辑与或条件弱

//逻辑运算符优先级顺序:&&->||,后面跟着优先级比较低(弱)的条件运算符

赋值逗号一点破

//赋值,逗号最低

学习收获:

这节课程把剩下的几种运算符给总结到了

然后又把 运算符优先级整理了一下

还编了一个速记口诀 可以起到很好的学习作用

截图打卡:

0人推荐
随时随地看视频
慕课网APP