【笔记】C语言的运算符
前言
C语言的运算符学习笔记
运算符
数学运算符
+、-、*、/、%
赋值运算符
=、+=、-=、*=、/=、%=
1 | a+=2 <=> a=a+2 |
自增自减
++、--
逗号运算符
,- 先计算逗号左边的表达式,后计算逗号右边的表达式,但最终只返回都好右边的表达式结果
关系运算符
- 返回真(1)或假(0)
<、>、<=、>=、==、!=
逻辑运算符
- 返回真(1)或假(0)
&&、||、!
&&
- 与(and)
- 与是双目的运算符
- 有假即假
1 | 真 && 真 结果为真 |
||
- 或(or)
- 或是双目的运算符
- 有真即真
1 | 真 || 真 结果为真 |
!
- 非(not)
- 非是单目的运算符
- 非真即假,非假即真
1 | !真 结果为假 |
运算符优先级
| 优先级 | 运算符 | 同级运算顺序 |
|---|---|---|
| 1 | []作为数组下标、()作为圆括号、()作为调用函数、{}作为语句块、-> |
从左到右 |
| 2 | ++、--、+前缀表示正时、-前缀表示负时、!前缀表示非时、~前缀、sizeof、*取指针时、&取地址时、(type)类型转换 |
从右到左 |
| 3 | *、/、% |
从左到右 |
| 4 | +、- |
从左到右 |
| 5 | <<、>> |
从左到右 |
| 6 | <、>、<=、>= |
从左到右 |
| 7 | ==、!= |
从左到右 |
| 8 | & |
从左到右 |
| 9 | ^ |
从左到右 |
| 10 | | |
从左到右 |
| 11 | && |
从左到右 |
| 12 | || |
从左到右 |
| 13 | ? |
从右到左 |
| 14 | =、+=、-=、*=、%=、<<=、>>=、&=、|=、!= |
从右到左 |
| 15 | ,作为逗号运算符 |
从左到右 |
- 如果不能确定优先级,或者想改变优先级,可以使用
()