您的位置 首页 > 教育

逻辑短路计算 c语言,什么是逻辑运算中“短路”现象?

逻辑短路计算

逻辑短路计算 c语言,什么是逻辑运算中“短路”现象?

C语言编程中短路现象的原理是什么?

c语言,什么是逻辑运算中“短路”现象?

C语言中的短路现象出现与逻辑运算中,包括逻辑与ampamp和逻辑或||。 1 逻辑与中的短路。 逻辑与的运算符为ampamp, 其运算规则为,对于 expr1 ampamp expr2 只有当expr1和expr2同时为真(1)时,结果才为真(1)。 可以得到,如果expr1为假,那么无论expr2值是什么,结果都是假。 这种情况下,expr2的值就不重要了,于是当expr1为0(假)时,后续的expr2不会加入计算,而是被忽略,这就是逻辑与的短路现象。 2 逻辑或中的短路。 逻辑或的运算符为||, 其运算规则为,对于 expr1 || expr2 只有当expr1和expr2同时为假(0)时,结果才为假(0)。 可以得到,如果expr1为真,那么无论expr2值是什么,结果都是真。 这种情况下,expr2的值就不重要了,于是当expr1为1(真)时,后续的expr2不会加入计算,而是被忽略,这就是逻辑或的短路现象。 综上,短路现象的出现,其实是和各自的运算规则相关的,如果第一个运算符已经可以确定运算结果,那么第二个运算符就会被忽略,这样的设置,可以提高系统运行的效率。

C语言,短路运算?

答案是B)2,2,2,4。d不可能是5!短路规则是:在整个逻辑表达式中,同级运算符从左到右运算,当前一个分表达式的运算结果能确定整个表达式的值时,再向右的表达式统统免于运算,而以当前这个分表达式的值作为整个表达式的值。在你这里:if((a=2)||(b=1))c=2中,由于前一个分表达式a=2为“真”,那么由于||两边只要一个为“真”就为“真”,所以b=1分表达式就不会再计算,结果(a=2)||(b=1)取“真”,执行体语句c=2。后一个if中由于c==3不成立(因为前面为c赋值为2了),所以ampamp后的分表达式d=-1就没有必要执行了,所以整个表达式(c==3)ampamp(d=-1)为“假”,不执行体语句a=5。所以最后输出是2,2,2,4。

相关文章