4.1 算术运算符
用于执行基本的数学运算:
- 加法(
+
):a + b
- 减法(
-
):a - b
- 乘法(
*
):a * b
- 除法(
/
):a / b
(整数除法会舍去小数部分) - 取余(
%
):a % b
(计算a
除以b
的余数)
示例:
#include <stdio.h>
int main() {
int a = 10, b = 3;
printf("a + b = %d\n", a + b);
printf("a - b = %d\n", a - b);
printf("a * b = %d\n", a * b);
printf("a / b = %d\n", a / b);
printf("a %% b = %d\n", a % b); // 注意:%%用于输出%
return 0;
}
4.2 关系运算符
用于比较两个值:
- 等于(
==
):a == b
- 不等于(
!=
):a != b
- 大于(
>
):a > b
- 小于(
<
):a < b
- 大于等于(
>=
):a >= b
- 小于等于(
<=
):a <= b
示例:
#include <stdio.h>
int main() {
int a = 10, b = 20;
printf("a == b: %d\n", a == b);
printf("a != b: %d\n", a != b);
printf("a > b: %d\n", a > b);
printf("a < b: %d\n", a < b);
printf("a >= b: %d\n", a >= b);
printf("a <= b: %d\n", a <= b);
return 0;
}
4.3 逻辑运算符
用于逻辑运算:
- 逻辑与(
&&
):a && b
(当且仅当a
和b
都为真时结果为真) - 逻辑或(
||
):a || b
(当a
或b
中至少有一个为真时结果为真) - 逻辑非(
!
):!a
(a
为假时结果为真,反之亦然)
示例:
#include <stdio.h>
int main() {
int a = 1, b = 0;
printf("a && b: %d\n", a && b);
printf("a || b: %d\n", a || b);
printf("!a: %d\n", !a);
return 0;
}
4.4 位运算符
用于对整数的二进制位进行操作:
- 按位与(
&
):a & b
(对每个位进行与操作) - 按位或(
|
):a | b
(对每个位进行或操作) - 按位异或(
^
):a ^ b
(对每个位进行异或操作) - 按位取反(
~
):~a
(对每个位进行取反操作) - 左移(
<<
):a << n
(将a
的二进制位向左移动n
位) - 右移(
>>
):a >> n
(将a
的二进制位向右移动n
位)
示例:
#include <stdio.h>
int main() {
int a = 5, b = 3;
printf("a & b = %d\n", a & b);
printf("a | b = %d\n", a | b);
printf("a ^ b = %d\n", a ^ b);
printf("~a = %d\n", ~a);
printf("a << 1 = %d\n", a << 1);
printf("a >> 1 = %d\n", a >> 1);
return 0;
}
4.5 赋值运算符
用于将值赋给变量,并可以进行计算:
- 赋值(
=
):a = b
- 加赋值(
+=
):a += b
(相当于a = a + b
) - 减赋值(
-=
):a -= b
(相当于a = a - b
) - 乘赋值(
*=
):a *= b
(相当于a = a * b
) - 除赋值(
/=
):a /= b
(相当于a = a / b
) - 取余赋值(
%=
):a %= b
(相当于a = a % b
)
示例:
#include <stdio.h>
int main() {
int a = 10;
a += 5; // 相当于 a = a + 5
printf("a += 5: %d\n", a);
a -= 3; // 相当于 a = a - 3
printf("a -= 3: %d\n", a);
return 0;
}
4.6 运算符优先级与结合性
运算符的优先级决定了在没有括号的情况下,哪些运算会先进行。结合性决定了相同优先级的运算符的运算顺序:
- 高优先级:
*
、/
、%
- 低优先级:
+
、-
- 赋值运算符:
=
的优先级低于大多数运算符
示例:
#include <stdio.h>
int main() {
int result = 10 + 5 * 2; // 先乘法后加法
printf("10 + 5 * 2 = %d\n", result);
return 0;
}
练习
- 编写一个程序,使用不同的运算符计算两个整数的加、减、乘、除、取余结果,并输出这些结果。
- 试验位运算符的效果,并观察不同的操作如何影响结果。
完成这些练习后,你将更好地理解C语言中的运算符及其用法。