1、算术操作符(+、-、*、/、%)
%:两边的类型必须为整数
/:double、flout中除数与被除数之间有一个浮点数即可
+、-、*、/:两边的类型可以不一样
2、移位操作符(<<左移 >>右移)
逻辑右移:右移后左边添0
算术右移:右移后左边添加的位与以原数的符号位相同
在C语言中,左移右移对于无符号数(unsigned)都数逻辑的。对于负数,就要执行算术的。
然而数据在内存中都是以补码的形式储存。
+0: 00000000 00000000 00000000 00000000
-0:100000000 00000000 00000000 00000000
加1后就会溢出一个进位
@对于移位操作符,不要尝试去移动负数位,因为标准未定义。
因此得到:左移×2,右移÷2
3、位操作符(&、|、^)
主要针对二进制数之间的比较
4、逻辑操作符(&&、||)【存在短路现象】
在C语言中,称非0的数为真,0为假。
逻辑与:第一个表达式为0时,则为假,不在往后进行
逻辑或:第一个表达式为真时,则为真,不在往后进行
5、条件表达式(三目运算符)
(表达式)?(表达式):(表达式)
6、逗号表达式
就是用逗号隔开的多个表达式,逗号表达式,从左向右依次进行,整个表达式的结果是最后一个表达式的结果
7、访问结构体成员(结构体类型:struct stu)