一、算数运算
1.C语言中一共提供了34种运算符
2.基本运算(加、减、乘、除)
3.取余运算(也称模运算)
- %两边都是整数,如果为小数会报错
- 取余结果的正负性取决于%左边的整数
- 取余运算可以将一个整数的值固定在多少以内
4.自动类型装换
int a = 10.8; // double 自动转换成int,会有警告;
5.强制类型装换
int a = (int)10.8; // double 自动转换成int,不会再有警告;
6.自动类型提升
double c = 10.6 + 6; // 会将6自动提升为double进行加法运算;
7.复合运算
a += 5; // a = a + 5; a *= 6; // a = a * 6; a += 5 + 6 + 4; // a = a + (5 + 6 + 4);
8.代码练习
二、关系运算(比较运算)
1.条件判断
- C语言中是没有BOOL类型的;
- C语言中规定任何数据都是又真假性的:任何非0的值都为真,只有0才为假;
2.优先级
- 关系运算符中 == 、!= 的优先级相等,<、<=、>、>= 的优先级相等,且前者的优先级低于后者;
如:int result = 2 > 3 == 1;
解析:先运算: 2 > 3 返回0,假
再运算: 0 == 1; 返回为0,假
即结果:result = 0;
- 关系运算符的结合方向为从左往右;
如:int result = 4 > 3 > 2;
结果: result = 1 > 2 = 0;
- 关系运算符的优先级小于算术运算符
如:int result = 3 + 4 > 8 - 2;
解析:int result = 7 > 6;
即结果:result = 1;
三、逻辑运算
1.逻辑运算的结果只有两种:真和假;
2.共有三种运算符:
- 逻辑与:格式:条件1 && 条件2;
- 逻辑或:格式:条件1 || 条件2;
- 逻辑非:格式:!条件;
3.注意点:
- 当条件1的结果已经能决定整体结果时,就不再运行条件2
如:
int a = 10;
int b = 10;
int c = (a < 5) && (++b >= 11);
结果:a = 10, b = 10, c = 0;
解析:当运算完 a < 5 后,即为0,就会决定c = 0;将不再运行b >= 11, 即,没有进行 ++b,导致 b = 10。
- 条件也可以是一个常量;
如:int c = 5 && 6;
- 逻辑非可以连写;
如:int a = !!5; 结果:a = 1;
4.代码练习:
结果:
四、三目运算
1.格式:
- 条件 ? 数值1 : 数值2;
如:int a = 10 > 5 ? 9 : 6;
结果:a = 9;
2.判断两个数的大小
int a = 10; int b = 9; int c = a > b ? a : b;
3.判断三个数的大小
int a = 10; int b = 9; int c = 998; int abMax = (a > b) ? a : b; int max = (abMax > c) ? abMax : c; // 结果:max = 998;
4.代码练习
运行结果:
时间: 2024-10-09 23:29:11