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。

相关推荐
luoganttcc15 分钟前
冯诺依曼体系有一天会被打破吗
算法·架构
V搜xhliang024621 分钟前
【进阶篇】OpenClaw 高级技巧:定时任务 + 子 Agent + 自动化工作流
运维·人工智能·算法·microsoft·自动化
神仙别闹27 分钟前
基于Python实现一个C语言的编译器
java·c语言·python
Allen_LVyingbo29 分钟前
面向医疗群体智能的协同诊疗与群体决策支持系统(下)
开发语言·数据结构·windows·python·动态规划
玛卡巴卡ldf34 分钟前
【LeetCode 手撕算法】(回溯)全排列DFS、子集、电话号码字母组合 九键、组合总和、括号生成、单词搜索、分割回文数
java·算法·leetcode·力扣
风筝在晴天搁浅38 分钟前
快手/腾讯 CodeTop LeetCode 43.字符串相乘
算法·leetcode
鱼很腾apoc38 分钟前
【学习篇】第18期 C++模板
c语言·c++
weixin_4217252643 分钟前
Windows下C语言编译指南
c语言·visualstudio·mingw·gcc·windows编译
@Ma1 小时前
详细解读Redis作者antirez开源的ds4项目,ds4.c — DeepSeek V4 Flash 本地推理引擎(中文文档)
c语言·redis·开源
_深海凉_1 小时前
LeetCode热题100-括号生成
算法·leetcode·职场和发展