算术运算符:
+ - * %(取余数) /(除)
除法 / 的运算和运算对象的数据类型有关,若两个数都是int,则商就是int,即整数,,若商有小数,则去掉小数部分。
如: 16 / 5 == 3 3 / 5 == 0 -13 / 4 == -4
被除数和除数中只要有一个都是浮点型数据,则商也是浮点型,不去掉小数部分。
如: 16 / 5.0 == 3.20000
取余 % 的运算对象必须是整数,结果是整除后的余数,其余数的符号与被除数相同。
如: 13 % 3 == 1 13 % -3 == 1 -13 % 3 == -1
关系运算符:
> >= < <= !=(不等于) ==(等于)
逻辑运算符:
!(非) &&(并且) ||(或)
(一个&表示取地址)
C语言对真假的处理:非零是真,零是假;真用1表示,假用零表示
&&左边的表达式为假,右边的表达式肯定不会执行
| | 左边的表达式为真,右边的表达式肯定不会执行
赋值运算符:
= += *= /= -=
例如:a+=3; a=a+3;
a/=3; a=a/3;
他们的优先级别为 算术 > 关系 > 逻辑 > 赋值
一些琐碎的运算符知识:
自增【或者自减】
分类:前自增:- - i + + i
后自增:i - - i + +
前自增和后自增的异同:
相同:最终都使 i 的值加一
不同:前自增整体表达的值是 i 加1 之后的值
后自增整体表达的值是 i 加1 之前的值
例如: i = j = 3
则 k = i++ k的值为3
m =++ j m的值为4
为什么会出现自增
代码更精炼
自增的速度更快
学习自增要明白的几个问题
①我们编程时应该尽量屏蔽掉前自增和后自增的差别
②自增表达式最好不要作为一个更大的表达式的一部分来使用
或者说
i ++ 或++ i 单独成一个语句,不要把它作为一个完整复合语句的一部分来使用
如:int i = i++ + ++i + ++i + i //这样写不但是不规范的代码,而且是不可移植的代码,在不同的机器上运行结果不同
printf (" %d %d %d " , i ++ ,++ i, i )//同上
三目运算符
A ? B : C
等价于 if(A)
B ;
else
C ;
逗号表达式
格式 ( A , B , C , D )
功能: ① 从左到右执行 ②最终表达式的值是最后一项的值