【笔记】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 | , 作为逗号运算符 |
从左到右 |
- 如果不能确定优先级,或者想改变优先级,可以使用
()