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。

相关推荐
Emberone15 小时前
数据结构:算法的时间复杂度和空间复杂度
数据结构·算法
历程里程碑15 小时前
Linux 18 进程控制
linux·运维·服务器·开发语言·数据结构·c++·笔记
YuTaoShao15 小时前
【LeetCode 每日一题】3013. 将数组分成最小总代价的子数组 II
算法·leetcode·职场和发展
爱尔兰极光15 小时前
LeetCode 热题 100--字母异位词分组
算法·leetcode·职场和发展
EnglishJun15 小时前
数据结构的学习(三)---双向链表与循环链表
数据结构·学习·链表
梵刹古音15 小时前
【C语言】 数组基础与地址运算
c语言·开发语言·算法
im_AMBER15 小时前
Leetcode 112 两数相加 II
笔记·学习·算法·leetcode
long31615 小时前
KMP模式搜索算法
数据库·算法
_OP_CHEN15 小时前
【算法基础篇】(五十三)隔板法指南:从 “分球入盒” 到不定方程,组合计数的万能解题模板
算法·蓝桥杯·c/c++·组合数学·隔板法·acm/icpc
近津薪荼15 小时前
优选算法——滑动窗口3(子数组)
c++·学习·算法