C语言逻辑操作符的短路问题

C语⾔逻辑运算符的一个特点------

它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是 保证的。

如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为"短路"。

一、&& 逻辑与操作符

两边都为真则结果为真,一边为假则结果为假

对于&&操作符来说,左边操作数的结果是0的时候,右边操作数就不再执⾏ (左边操作数的结果是0的时候,右边不必判断也是假)

二、|| 逻辑或操作符

两边为假则为假,一边为真则为真

对于 || 操作符来说,左边操作数的结果是1的时候,右边操作数就不再执⾏ (左边操作数的结果是1的时候,右边不必判断也是真)

仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进⾏计算的运算称为短 路求值

下面上代码举例说明

一、逻辑与操作符短路求值问题

首先赋值运算符优先级低于逻辑运算符,其次逻辑操作符从左到右依次计算,++与逻辑运算符的优先级需要根据前置和后置来区分。

​编辑

二、逻辑与操作符短路求值对照组

​编辑

三、逻辑或操作符短路求值问题

​编辑

四、逻辑或操作符短路求值对照组

​编辑

相关推荐
a程序小傲22 分钟前
京东Java面试被问:Fork/Join框架的使用场景
java·开发语言·后端·postgresql·面试·职场和发展
想用offer打牌26 分钟前
面试官问Redis主从延迟导致脏数据读怎么解决?
redis·后端·面试
appearappear1 小时前
Mac 上重新安装了Cursor 2.2.30,重新配置 springboot 过程记录
java·spring boot·后端
谷哥的小弟1 小时前
Spring Framework源码解析——RequestContext
java·后端·spring·框架·源码
IT_陈寒1 小时前
Vite 5大优化技巧:让你的构建速度飙升50%,开发者都在偷偷用!
前端·人工智能·后端
鹿角片ljp2 小时前
Spring Boot Web入门:从零开始构建web程序
前端·spring boot·后端
程序员阿鹏2 小时前
SpringBoot自动装配原理
java·开发语言·spring boot·后端·spring·tomcat·maven
程序员爱钓鱼2 小时前
Node.js 编程实战:CSV&JSON &Excel 数据处理
前端·后端·node.js
老华带你飞2 小时前
工会管理|基于springboot 工会管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
Echo flower3 小时前
Spring Boot WebFlux 实现流式数据传输与断点续传
java·spring boot·后端