1. 算术运算
- 定义:处理数值计算,操作数为数字(整数或浮点数)。
- 运算符:
+(加)、-(减)、*(乘)、/(除)、%(取模)- 自增/自减:
++、--
- 示例:
1
2
3int a = 10 / 3; // 结果为3(整数除法)
float b = 10.0 / 3; // 结果为3.333...
int c = 10 % 3; // 结果为1 - 注意事项:
- 整数除法会截断小数部分。
- 取模运算
%仅适用于整数。
2. 逻辑运算
- 定义:基于布尔逻辑(真/假),操作数视为逻辑值(0为假,非0为真)。
- 运算符:
&&(逻辑与)、||(逻辑或)、!(逻辑非)
- 示例:
1
int result = (5 > 3) && (2 != 4); // 结果为1(真)
- 特点:
- 短路求值:若
&&左侧为假,右侧不执行;若||左侧为真,右侧不执行。 - 结果只能是
0(假)或1(真)。
- 短路求值:若
3. 位运算
- 定义:直接操作二进制位,用于硬件控制或优化。
- 运算符:
&(按位与)、|(按位或)、^(异或)、~(取反)<<(左移)、>>(右移)
- 示例:
1
2int a = 5 & 3; // 0101 & 0011 = 0001(结果为1)
int b = 5 << 2; // 0101 → 10100(结果为20) - 与逻辑运算的区别:
- 操作对象是数值的所有二进制位。
- 结果仍是数值,而非
0/1。
4. 关系运算
- 定义:比较两个值的大小或相等性。
- 运算符:
==(等于)、!=(不等于)>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
- 示例:
1
int result = (5 == 3); // 结果为0(假)
- 结果:
0(假)或1(真)。
5. 赋值运算
- 定义:给变量赋值,可结合其他运算。
- 运算符:
=(基本赋值)+=、-=、*=、/=、%=、<<=等(复合赋值)
- 示例:
1
2int a = 10;
a += 5; // 等价于a = a + 5;
6. 其他运算符
- 条件运算符(三目运算符):
1
int max = (a > b) ? a : b; // 若a>b返回a,否则返回b
- 逗号运算符:
1
int result = (a=2, b=3, a+b); // 依次执行表达式,结果为5
- sizeof运算符:
1
int size = sizeof(int); // 返回int类型占用的字节数
7. 运算符优先级总结
| 类别 | 运算符 | 优先级顺序 |
|---|---|---|
| 算术运算 | * / % → + - |
高 → 低 |
| 关系运算 | == != → < <= > >= |
|
| 逻辑运算 | ! → && → ` |
|
| 赋值运算 | =、+=等 |
最低 |
- 关键提醒:
- 使用括号
()明确优先级,避免混淆。 - 混淆
&和&&、|和||是常见错误!
- 使用括号
示例对比:逻辑运算 vs 位运算
1 | int a = 5 && 3; // 逻辑与:5和3均为非零,结果为1 |
本文作者:
ICXNM-ZLin
本文链接: https://talent-tudou.github.io/2025/03/02/C语言/C语言运算类型详解/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
本文链接: https://talent-tudou.github.io/2025/03/02/C语言/C语言运算类型详解/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!