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。

相关推荐
是wzoi的一名用户啊~6 分钟前
Floyd 模版 弗洛伊德算法 模版
c++·算法·动态规划·图论·floyd
昵称小白8 分钟前
图论专题(下)
算法·图论
懒惰的coder11 分钟前
MPC算法
算法
余俊晖11 分钟前
图文混合文档的轻量级多模态listwise重排框架:Rank-Nexus
人工智能·算法·机器学习
小许同学记录成长13 分钟前
三维编辑功能实现
qt·算法·无人机
平行侠13 分钟前
026FFT快速乘法 - 从信号处理到大数计算的革命
数据结构·算法·信号处理
Controller-Inversion19 分钟前
240. 搜索二维矩阵 II
线性代数·算法·矩阵
计算机安禾22 分钟前
【c++面向对象编程】第4篇:类与对象(三):拷贝构造函数与深浅拷贝问题
开发语言·c++·算法
C雨后彩虹24 分钟前
猴子爬山问题
java·数据结构·算法·华为·面试
y = xⁿ25 分钟前
20天速通LeetCodeday13:关于回溯
算法