版本声明:本文转载于公众号TeachPlus
C语言面试题---逻辑短路问题
写出下面程序的输出
#include<stdio.h>
int main()
{
int a=5,b=6,c=7,d=8,m=2,n=2;
(m=a<b)||(n=c>d);
printf("%d\t%d",m,n);
return 0;
}
本题答案
答案为1,2
本题解析
本题的考察重点在于逻辑运算符的短路问题。
在逻辑判断中,常常需要判断多个条件,如:
if A and B;
这时,当A为false时,无论B值是什什么,结果都为false,
所以可以不用判断B,直接跳过。这种情况称为逻辑短路路。
逻辑短路有许多应用,如
if(name != NULL && name.equals("admin"))
{
//do somethings
}