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。

相关推荐
kyle~18 小时前
算法---贪心算法(Greedy Algorithm)
算法·贪心算法
fashion 道格18 小时前
C 语言数组拼接:从基础实现到细节优化
算法
头发还没掉光光19 小时前
Linux多线程之自旋锁与读写锁
linux·运维·算法
fashion 道格19 小时前
C 语言希尔排序:原理、实现与性能深度解析
数据结构·算法·排序算法
无限进步_19 小时前
C语言atoi函数实现详解:从基础到优化
c语言·开发语言·c++·git·后端·github·visual studio
如意猴19 小时前
实现链式结构二叉树--递归中的暴力美学(第13讲)
数据结构
初夏睡觉19 小时前
P1048 [NOIP 2005 普及组] 采药
数据结构·c++·算法
小欣加油19 小时前
leetcode 1513 仅含1的子串数
c++·算法·leetcode·职场和发展
树在风中摇曳19 小时前
【C语言预处理器全解析】宏、条件编译、字符串化、拼接
c语言·算法
CodeWizard~19 小时前
P7149 [USACO20DEC] Rectangular Pasture S题解
算法