逻辑或 “||“ 的“短路”特性(大学生例题讲解)也有&&短路特性的讲解

简介: 逻辑或 “||“ 的“短路”特性(大学生例题讲解)也有&&短路特性的讲解

先放例题



image.png


答案选C


首先我们要明白


A||B为真,即A、B至少一个为真(即记为1,同理假记为0)

A&&B为真,即A、B都为真(即记为1,同理假记为0)

1和0,对应真假这个是离散数学里面定义的,C语言也适用。


由题j++| | k++即,1 | | 2由于两边都不同时为0,即判断为真,记为1,同时“或”逻辑前面为1发生短路

化简后原式等于 1 && i++,即1 && 1,由于同时不为0,所以判断为真,记为1,且“与”逻辑前面不为0,就不会发生短路


补充说明 自加自减的运算规则(++a, --a, a++, a–)


得到if(1),所以输出printf("%d,%d,%d\n",j,k);

好的难点来了,仔细听

按理说三个都进行自加输出应该是 2,2,3

但是考虑到 | | 的短路特性,k被短路,所以得到结果是2,2,2


总结:


  1. 多层嵌套里的右侧数值不发生变化
  2. “或”逻辑前面为1(不为0即可),“与”逻辑前面为0就会发生短路
  3. 即根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。


附赠几道例题,用来细品


image.png


网络异常,图片无法展示
|


网络异常,图片无法展示
|


图片引自海南大学上课课件



image.png


图一是 || 前不为1所以++b&&++c没有被短路,再看++b&&++c,&&前不为0,也没有短路


image.png


图二是 || 前为1所以++b&&++c被短路


image.png


图三是 || 前为1所以++b&&++c被短路



image.png


图四是 || 前不为1所以++b&&++c没有被短路,再看++b&&++c,&&前为0,则c被短路

相关文章
西门子S7-1200编程实例,移位和循环移位指令如何使用?
西门子S7-1200的移位指令包括左移位指令和右移位指令,循环移位指令包括循环左移位指令和循环右移位指令。
西门子S7-1200编程实例,移位和循环移位指令如何使用?
逻辑操作符的短路现象
逻辑操作符的短路现象 1.逻辑操作符 2.逻辑操作符的短路
84 0
|
存储 传感器 物联网
【数字逻辑 | 组合电路基础】电路基础知识
【数字逻辑 | 组合电路基础】电路基础知识
【数字逻辑 | 组合电路基础】电路基础知识
电路模电数电课程中卡诺图知识点(包括化简原则和步骤)
电路模电数电课程中卡诺图知识点(包括化简原则和步骤)
282 0
电路模电数电课程中卡诺图知识点(包括化简原则和步骤)
逻辑运算的短路特性(&&,||)
逻辑运算的短路特性(&&,||)
248 0
《逻辑与计算机设计基础(原书第5版)》——2.5 卡诺图的化简
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第2章,第2.5节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2330 0
《逻辑与计算机设计基础(原书第5版)》——第2章 2.0组合逻辑电路
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第2章,第2.0节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1270 0
《逻辑与计算机设计基础(原书第5版)》——3.8 迭代组合电路
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第3章,第3.8节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1163 0
《逻辑与计算机设计基础(原书第5版)》——第3章 3.0组合逻辑电路的设计
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第3章,第3.0节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1336 0
《逻辑与计算机设计基础(原书第5版)》——2.6 异或操作和异或门
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第2章,第2.6节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1697 0