c语言 什么是逻辑运算中“短路”现象?这会带来什么影响?

如题所述

逻辑运算中“短路”现象是指,仅计算逻辑表达式中的一部分便能确定结果,而不对整个表达式进行计算的现象。给你举个例子:
表达式: ( a == 0 || b ==1) ,只要a == 0为真时,整个表达式的结果就肯定是真,故不会再对
b==1进行判断。
在开发中一定要注意“短路”现象,前面的例子不会产生不良的结果,但下面的例子就不同了
(a() || c = b()) 这个表达式中,是对两个函数 (a(), b())的返回值进行判断,如果后面的代码要用到变量 c,则可能因为出现短路现象,而导致错误。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-02
“短路”现象是指在做逻辑"或"运算时, 前一个命题是正确的, 那么后面几个命题就不要进行运算了.
比如(1+2==3)||(3*4==5), 由于1+2==3是真命题, 所以整个运算返回的值就为1, 而不需要判断3*4==5是否正确.

“断路”现象是指在做逻辑"且"运算时, 前一个命题是错误的, 那么后面几个命题就不要进行运算了.
比如(1+2!=3)&&(3*4!=5), 由于1+2!=3是假命题, 所以整个运算返回的值就为0, 而不需要判断3*4!=5是否正确.
第2个回答  2013-03-21
逻辑运算中的短路,意思就是只执行前半段代码就知道整个表达的最终值。所以后半段就不会运算也没必要运算了。会导致整个表达式的后半段代码不运行。

比如说:
if( 1 || .... | |...)
这种情况下,只看到第一个条件就知道不管怎么样肯定会进这个if所以后面的两个条件都不会被计算到,这种就称为短路。因为后面的走不到
第3个回答  2013-03-21
死循环,得不出结果
相似回答