C语言—逻辑运算符中的短路求值

在利用 && 和 || 等操作运算符进行逻辑运算时,只要最终的运算结果可以确定,运算就终止。

比如:
a=3,b=3,那么(a3)&&(b=3),因为两边均为真,所以与运算&&结果为真;
a=3,b=3,那么(a3)||(b=3),因为左边已经为真,无论右边是否为真,或运算||结果都为真,所以(a3)运算完后结果确定,运算到此结束,不需要再去判断(b=3)。

c 复制代码
#include <stdio.h>
int main() {
	int a = 3, b = 3;

	(a = 4) && (b = 5);
	 printf("a的值为%d, b 的值为%d\n",a,b);		 
	(a = 1)||(b = 7);
	printf("a 的值为%d, b 的值为%d\n", a, b);
	// system("pause");

	return 0;
	
}
c 复制代码
a 的值为4, b 的值为5
a 的值为1, b 的值为5
请按任意键继续. . .

(a = 1)||(b = 7);该语句触发短路求值,语句中的(b = 7)并没有执行到,所以b还是5。

相关推荐
天呐草莓5 分钟前
聚类(Clustering)算法
人工智能·python·算法·机器学习·数据挖掘·数据分析·聚类
m0_743106467 分钟前
【基础回顾】针孔相机、深度、逆深度、与SfM的统一
人工智能·算法·计算机视觉·3d·几何学
炽烈小老头17 分钟前
【每天学习一点算法 2025/12/30】最大子序和
学习·算法
Flash.kkl19 分钟前
优选算法专题十八——BFS解决拓扑排序
算法·宽度优先
C++ 老炮儿的技术栈19 分钟前
时序数据库 相对于关系型数据库,有什么区别
c语言·开发语言·c++·机器人·时序数据库·visual studio
hetao173383724 分钟前
2025-12-30 hetao1733837 的刷题笔记
c++·笔记·算法
小袁顶风作案27 分钟前
leetcode力扣——27.移除元素、26.删除有序数组的重复项、80.删除有序数组中的重复项 II
数据结构·算法·leetcode
goodlook012339 分钟前
监控平台搭建-监控指标展示-Grafana篇(五)
java·算法·docker·grafana·prometheus
这是个栗子40 分钟前
前端开发中的常用工具函数(持续更新中...)
前端·javascript·算法
断剑zou天涯41 分钟前
【算法笔记】有序表——相关题目
笔记·算法