1.算术操作符
一共有5个,包括+ - * / %,这些都是双目操作符(就是说这个操作符对两个变量进行操作)。这里主要对/和%进行详细地介绍。
/ 即求商
- 两个操作数都是整数,得到的结果也是整数
- 只要有浮点数,得到的结果就是浮点数
% 即求余数
- 返回的是两个整数相除的余值(整数!)
- 对于负数求模,结果的正负号与第一个运算数一致
printf("%d",-11%5);//-1
2.赋值操作符
=和复合赋值符
- = 赋值,要和==做区别,==是判断是否相等。
- C语言支持连续赋值,但不建议这样写。
b=a=a+3;//先把a+3赋值给a,再把a赋值给b。从右向左依次赋值
- 复合赋值符
+= -= *= %= /= >>= <<= &= |= ^=
这些形式都是一个运算方法,例如:
a+=1;就相当于a=a+1。
3.单目操作符
++ -- + (正号) -(负号)
++ (--用法一致)
- 前置++ 先+1,后使用
int a=3;
int b=++a;//先++,即a=a+1=4;后使用,b=4
- 后置++ 先使用,后++
int a=3; int b=a++;//先使用,即b=a,b=3;a再++,a=4
4.关系操作符
> < >= <= == !=
- 关系表达式通常返回0或1,表示真假 (例如,20>11,返回1)。常用于if或while结构
- 如果一个变量和一个常量比较是否相等,建议把常量放在==左边 例如: 5==a
- 多个关系运算符不宜连用,不会报错,但通常达不到想要的结果
10<6返回0,但6<14返回1,所以打印hello
5.条件操作符(三目操作符)
形式为:exp1?exp2:exp3
如果exp1为真,计算exp2,并且计算的结果是整个表达式的结果;
如果exp1为假,计算exp3,并且计算的结果是整个表达式的结果。
6.逻辑运算符
! && ||
- ! 逻辑取反运算符,改变的是单个表达式的真假
- && 与运算符
- || 或运算符
- “短路”
C语言的逻辑运算符总是先对左侧的表达式求值,再对右侧的表达式求值。如果左边的表达式满足逻辑运算的条件,就不再对右边的表达式求值。例题如下:
//a=0先使用,在与运算中,可知i=0,并且由于“短路”,++b不再计算;a++&&++b为假,所以c++不再计算。