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。

相关推荐
藦卡机器人9 分钟前
自动焊接机器人的核心技术要求与标准
人工智能·算法·机器人
Frank Castle9 分钟前
【C语言】详解C语言字节打包:运算符优先级、按位或与字节序那些坑
c语言·开发语言
ltqshs16 分钟前
vscode离线插件下载-vscode编译嵌入式C语言配置
c语言·ide·vscode
2501_9403152626 分钟前
【无标题】1.17给定一个数将其转换为任意一个进制数(用栈的方法)
开发语言·c++·算法
栈与堆28 分钟前
LeetCode 21 - 合并两个有序链表
java·数据结构·python·算法·leetcode·链表·rust
viqjeee36 分钟前
ALSA驱动开发流程
数据结构·驱动开发·b树
鹿角片ljp1 小时前
力扣7.整数反转-从基础到边界条件
算法·leetcode·职场和发展
java修仙传1 小时前
力扣hot100:前K个高频元素
算法·leetcode·职场和发展
小乔的编程内容分享站1 小时前
C语言指针相关笔记
c语言·笔记
嗷嗷哦润橘_1 小时前
从萝卜纸巾猫到桌游:“蒸蚌大开门”的设计平衡之旅
人工智能·算法·游戏·概率论·桌游