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。

相关推荐
Fine姐16 分钟前
数据结构04——二叉树搜索树BST
数据结构
仰泳的熊猫26 分钟前
1077 Kuchiguse
数据结构·c++·算法·pat考试
LYFlied1 小时前
【每日算法】LeetCode 19. 删除链表的倒数第 N 个结点
算法·leetcode·链表
阿里巴巴AI编程社区1 小时前
Qoder 提效实战:数据开发工程师用 Qoder 提效50%
数据结构
踏浪无痕1 小时前
计算机算钱为什么会算错?怎么解决?
后端·算法·面试
mit6.8241 小时前
[box64] 解决ARM64运行x86_64跨平台兼容性 | 机器架构配置
c语言
消失的旧时光-19431 小时前
从 C 链表到 Android Looper:MessageQueue 的底层原理一条线讲透
android·数据结构·链表
夏乌_Wx1 小时前
练题100天——DAY28:找消失的数字+分发饼干
数据结构·算法
lzh200409191 小时前
二叉搜索树与双向链表
数据结构·链表
喵了meme1 小时前
C语言实战6
c语言·开发语言