【C语言 - 学习总结】 01 - 运算符
一、基本运算
1. 算数运算符
a. + 加法运算符
b. - 减法运算符
c. * 乘法运算符
d. / 除法运算符 // 两个整数相除,结果为整数。
e. % 取余运算符(模运算) // 注意: 1. %两边都是整数 2. %取余结果的正负性只跟%左边的数值有关。
拓展知识点:
(1) 自动类型转换
(2) 强制类型转换
(3) 自动类型提升
1 //代码演示: 2 3 4 // 两个整数相除 5 int a = 7 / 3; // 结果为:2 6 7 // %取余结果的正负性只跟%左边的数值有关 8 int b = -7 % 3; //结果为: -1 9 int c = 7 % 3; //结果为: 1 10 11 // 自动类型转换(double->int) 12 int a = 10.8; 13 14 // 强制类型转换(double->int) 15 int b = (int) 10.5; 16 17 // 自动类型提升(int->double) 18 double c = 10.6 + 6;
2. 关系运算符
a. < 小于运算符
b. > 大于运算符
c. <= 小于等于运算符
d. >= 大于等于运算符
e. == 等于运算符
f. != 不等于运算符
注意:(1)关系运算的结果成立就为"真"(比如7>=3),就返回 1;不成立则为"假"(比如7<3),就返回 0 。
(2)在C语言中,没有boolean类型,任何非0值都为"真",只有0值才为"假"。
//代码演示: int a = 10; // 根据关系运算的结果来判断 if (10 == a) // 不推荐写:a == 0; { printf("条件成立"); } else { printf("条件不成立"); }
3.逻辑运算符
a. && 逻辑与运算符 // 又称 “短路运算符” ,如果第一个表达式不成立,后面一个表达式不参与计算
b. || 逻辑或运算符 // 如果第一个表达式成立,则后面一个表达式不参与计算
c. ! 逻辑非运算符 // 如果条件成立,就返回0;如果条件不成立,就返回1
注意:逻辑运算的结果也只有两个:成立就为"真",返回1;不成立就为"假",返回0。
4.赋值运算符
(1)简单赋值运算符:= // int a = 1;
(2)复合赋值运算符
a. += 加赋值运算符 // a += 1, 等同于 a = a + 1;
b. -= 减赋值运算符
c. *= 乘赋值运算符
d. /= 除赋值运算符
e. %= 取余赋值运算符
5. 自增自减运算符
a. ++ 自增运算符
b. -- 自减运算符
1 //代码演示 2 3 a++; // 先赋值,后自增 4 ++a; // 先自增, 后赋值 5 6 a--; // 先赋值, 后自减 7 --a; // 先自减, 后赋值
6. 逗号运算符
(1) 用逗号运算符连接起来的表达式称为逗号表达式,它的一般形式为:
表达式1, 表达式2, … …, 表达式n
(2)逗号表达式的运算过程是:从左到右的顺序,先计算表达式1,接着计算表达式2,...,最后计算表达式n。
(3)整个逗号表达式的值是最后一个表达式的值。
1 // 代码演示 2 3 int a = 2; 4 int b = 0; 5 int c; 6 c = (++a, a *= 2, b = a * 5); //先计算++a,再计算a *= 2,最后计算b = a * 5; 7 printf("c = %d", c);
7. 三目运算符
三目运算符 表达式1 ? 表达式2 : 表达式3
// 代码演示 int a = 6; int b = (a > 5) ? 10 : 9; // 如果a > 5 成立,则a = 10 ,否则 a = 9;
1 // 实例 2 3 //计算2个整数之间的最大值 4 int a = 10; 5 6 int b = 99; 7 8 int c = a>b ? a : b; 9 10 printf("c is %d\n", c);
8. 位运算符
a. & 按位与 // 常跟1进行按位与,得到某一位上面的值,可以用来判断奇偶性。
b. | 按位或
c. ^ 按位异或
1.相同数值进行异或,结果肯定是0,比如9^9
2.交换 9^5^6 == 9^6^5
3.任何数值跟0进行异或,结果还是原来的数值,9^0 == 9
4.a^b^a == a^a^b == 0^b == b
d. ~ 按位取反
e. << 左移 // 7<<n ,等同于 7 * 2的n次方。
f. >> 右移 // 7>>n ,等同于 7 / 2的n次方。
1 // 实例演示 2 3 // 使用位异或运算符交换两个变量的值 4 int a = 5; 5 int b = 10; 6 7 a = a ^ b; 8 b = a ^ b; 9 a = a ^ b; 10 11 printf("a=%d, b=%d\n", a, b);
9. sizeof
sizeof 可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。
1 // 实例演示sizeof的3种形式 2 3 // (1) sizeof( 变量\常量 ) 4 sizeof(5); 5 char c = 'a'; 6 sizeof(c); 7 8 // (2) sizeof 变量\常量 9 sizeof 10; 10 char c = 'a'; 11 sizeof c; 12 13 // (3) ( 数据类型 ) 14 sizeof(float); // 其中的括号不能省略

浙公网安备 33010602011771号