- 课程名称:嵌入式工程师
- 学习章节:运算符优先级
- 学习链接:https://class.imooc.com/sc/148/learn
- 讲师姓名:大白老师
课程内容:
赋值符合运算符
运算符 功能说明 示例
+= 加法赋值复合运算符 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
逻辑与或条件弱
//逻辑运算符优先级顺序:&&->||,后面跟着优先级比较低(弱)的条件运算符
赋值逗号一点破
//赋值,逗号最低
学习收获:
这节课程把剩下的几种运算符给总结到了
然后又把 运算符优先级整理了一下
还编了一个速记口诀 可以起到很好的学习作用
截图打卡: