【笔记】C语言的运算符

前言

C语言的运算符学习笔记

运算符

数学运算符

  • +-*/%

赋值运算符

  • =+=-=*=/=%=
1
2
3
4
5
a+=2 <=> a=a+2
a-=2 <=> a=a-2
a*=2 <=> a=a*2
a/=2 <=> a=a/2
a%=2 <=> a=a%2

自增自减

  • ++--

逗号运算符

  • ,
  • 先计算逗号左边的表达式,后计算逗号右边的表达式,但最终只返回都好右边的表达式结果

关系运算符

  • 返回真(1)或假(0)
  • <><=>===!=

逻辑运算符

  • 返回真(1)或假(0)
  • &&||!

&&

  • 与(and)
  • 与是双目的运算符
  • 有假即假
1
2
3
真 && 真 结果为真
真 && 假 结果为假
假 && 假 结果为假

||

  • 或(or)
  • 或是双目的运算符
  • 有真即真
1
2
3
真 || 真 结果为真
真 || 假 结果为真
假 || 假 结果为假

!

  • 非(not)
  • 非是单目的运算符
  • 非真即假,非假即真
1
2
!真 结果为假
!假 结果为真

运算符优先级

优先级 运算符 同级运算顺序
1 []作为数组下标、()作为圆括号、()作为调用函数、{}作为语句块、-> 从左到右
2 ++--+前缀表示正时、-前缀表示负时、!前缀表示非时、~前缀、sizeof*取指针时、&取地址时、(type)类型转换 从右到左
3 */% 从左到右
4 +- 从左到右
5 <<>> 从左到右
6 <><=>= 从左到右
7 ==!= 从左到右
8 & 从左到右
9 ^ 从左到右
10 | 从左到右
11 && 从左到右
12 || 从左到右
13 ? 从右到左
14 =+=-=*=%=<<=>>=&=|=!= 从右到左
15 ,作为逗号运算符 从左到右
  • 如果不能确定优先级,或者想改变优先级,可以使用()

完成