1. 算术运算
1) 取余运算(%)结果的正负性只跟%左边的数值有关
2) 自增自减(运算过程中自动类型提升(小升大))
a++:先运算,再自增
++a:先自增,再运算
3) sizeof:用来计算变量、常量、数据类型的内存字节数
- sizeof为运算符
- 计算变量、常量时可省略小括号(),如sizeof(7);等价于sizeof 7;
- 计算数据类型时不能省略,只有一种书写形式:sizeof(int);
2. 关系运算
C语言中关系运算符有:==(等于)/!=(不等于)/>(大于)/<(小于)/>=(大于等于)/<=(小于等于)
C语言中没有布尔类型,在C语言中,任何非0都为真,只有0为假(任何数值都有真假)
关系运算优先级
1) C语言关系运算符==/!=的优先级相等,>/</>=/<=的优先级相等,且前者的优先级低于后者的优先级
2) 关系运算符优先级相同时,运算顺序“从左至右”
3) 关系运算符的优先级低于算术运算符
3. 逻辑运算
1) 逻辑运算符与: && (当左边条件为假时,右边条件不运算)
条件A&& 条件B 一假即假,全真才真
2) 逻辑运算符或: || (当左边条件为真时,右边条件不运算)
条件A || 条件B 一真即真,全假为假
3) 逻辑非: !
!条件A 对条件A逻辑取反,真即假,假即真
- 逻辑运算!可以重复使用
- 对非0值运算均为0,对0运算均为1
4) 三目运算
条件?值1:值2; 如果条件成立,返回值1,不成立返回值2,三目运算一定有返回值
代码演示:
int a=5,b=6;
printf("%d",a>b?a:b); //a>b为假,输出b
//输出结果:6