基本运算分为:算术运算,赋值运算,自增自减运算,关系运算,逻辑运算,三目运算。
一、 算术运算
1、加法运算:用“+”号表示,还可以表示正数
2、减法运算:用“—”号表示,还可以表示负数
3、乘法运算: 用“*”而不是“x”表示
4、除法运算: 用“/”而不是“÷”表示(整数除以正数,结果仍然是整数)
5、取余运算: 用“%”号表示,两侧都是整数,并且最后的正负号由%左侧的整数决定。
6、类型转换:
① 自动类型转换
int a = 10.6;
int b = 10.5 + 1.7;
自动将大类型转换为了小类型,会丢失精度
② 自动类型提升
int b = 10.5 + 10;
将右边的10提升为了double类型
double b = 1.0 / 2;
解决除法的精度问题
③ 强制类型转换
double a = (double)1 / 2;
double b = (double)(1 / 2);
算术运算代码举例如下:
1 #include
2
3 intmain()4 {5 //1.算数运算符的基本使用
6 int a = 10 + 1 + 2 - 3 + 5;7
8 int b = -10;9
10 int c = 10 *b;11
12 int d = 10 / 2;13
14 //取余运算(模运算)15 //%两边都是整数16 //%取余结果的正负性只跟%左边的数值有关
17 int e = 10 % -3;18 printf("%d\n", a);19 printf("%d\n", b);20 printf("%d\n", c);21 printf("%d\n", d);22 printf("%d\n", e);23
24 //自动类型转换(double->int)
25 int m = 10.8;26
27 //强制类型转换(double->int)
28 int n = (int) 10.5;29 printf("%d\n",m );30
31
32 //自动类型提升(int->double)
33 double x = 10.6 + 6;34
35 double y = 1 / 3;36
37 double z = (double)3/2;38
39 printf("e的值是%f\n", z);40
41
42 return 0;43 }
运行的结果为:
二、赋值运算
1、 简单赋值
1 #include
2
3 intmain()4 {5 //简单赋值
6 int a = 10;7
8 intb;9 b= 6;10 return 0;11 }
2、 复合赋值
1 //复合赋值运算
2 a += 5; //a = a + 5;
3
4 a *= 5; //a = a * 5;
5
6 a += 5 + 6 + 4; //a = a + (5 + 6 + 4);
三、 自增自减运算
自增运算符++,例如(a++,++a);自减运算符--,例如(a--,--a)
1 int a = 10;2
3 a = a + 1; //11
4
5 a += 1; //12
6
7 a++; //13
8
9 ++a; //14
10
11 a--; //a -= 1; a = a - 1; 13
四、 关系运算
1、 真假性。在C语言中,条件成立为“真”,条件不成立为“假”,并且规定“0”表示假,任何其他非零值都表示真。
2、 关系运算的运算结果:关系运算的结果只有两种,即真假。条件成立,为真,默认值为1;不成立,为假,默认值为0
3、 特别注意:
① 关系运算符的优先级低于算术运算符
② 关系运算符中==、!=的优先级相等,、>=的优先级相等,且前者的优先级低于后者
③ 关系运算符的结合顺序是从左到右。
关系运算代码如下:
1 #include
2
3 intmain()4 {5
6 int a = 10;7
8 int b = 11;9
10 //条件成立就返回1,真11 //条件不成立就返回0,假
12 int result = b >=a;13
14 printf("%d\n", result);15
16
17 }
五、逻辑运算
1、 逻辑与(表示符号&&)
“条件A&&条件BB”
当条件A和条件B都成立时,结果为真,即值为1,否则为假
例如
1 逻辑与 条件1 &&条件22
3 int a = 10>3 && 7<6;4
5 int a = 0 && 10;6
7 printf("a=%d\n", a);
2、 逻辑或(表示符号||)
“条件A||条件B”
当条件A和条件B只要一个成立时,结果为真,即值为1,否则为假
例如
1 //逻辑或 条件1 || 条件2
2
3
4 int a = 10;5 int b = 10;6
7 int c = (a<5) || (b++ - 10);8
9 //a = 1010 //b = 1111 //c = 0
12 printf("a=%d, b=%d, c=%d\n", a, b, c);
3、 逻辑非(表示符号 !)
“!条件A”
对条件A进行取反:若条件A成立,结果就为假,即值为0,否则为真。
1 //逻辑非 !条件2 //如果条件成立,就返回0;如果条件不成立,就返回1
3
4
5
6
7 int a = !!10;8
9 printf("a=%d\n", a);10
11
六、三目运算符
三目运算符,运算格式: 条件 ? 数值1 : 数值2
1 //三目运算符 条件 ? 数值1 : 数值2
2
3 int a = !100 ? 9 : 89;4
5 printf("a=%d\n", a);