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。

相关推荐
羊小猪~~18 小时前
算法/力扣--字符串经典题目
c++·考研·算法·leetcode·职场和发展·哈希算法
攒了一袋星辰18 小时前
10万级用户数据日更与定向推送系统的可靠性设计
java·数据库·算法
nap-joker18 小时前
PIPE4:快速PPI预测器,用于综合的跨物种和跨物种相互作用组
算法·多模态生物医学数据分析·蛋白质互作网络
Lilixxs18 小时前
施耐德 M580、M340 PLC 中 BOOL 类型数组地址
数据结构·plc·施耐德·m580·m340·unity pro·control expert
磊 子18 小时前
类和对象—>析构+拷贝+运算符重载
开发语言·c++·算法
人道领域18 小时前
LeetCode【刷题日记】:数组篇(1)含原理讲解
算法·leetcode·职场和发展
RTC老炮18 小时前
webrtc弱网-BBRv2算法原理
网络·算法·webrtc
RTC老炮18 小时前
webrtc弱网-BBRv1算法原理
网络·算法·webrtc
MobotStone19 小时前
我的 AI 代码清理方法论:从原型到生产,只需 5 步
算法·程序员·架构
沐苏瑶1 天前
Java 搜索型数据结构全解:二叉搜索树、Map/Set 体系与哈希表
java·数据结构·算法