求助大神c语言问题(2>3)&&(x=5)结果是1?(2<3)&&(x=5)结果是5?为什么?
(2>3)&&(x=5)结果是1?(2<3)&&(x=5)结果是5?为什么?
4回答
-
snowmanJS
逻辑运算符 && || 的运算顺序是从左往右,若左边的关系表达式就能判断整个逻辑表达式的结果,就不计算右边表达式;否则执行。这个称为短路。
(2>3) && (x=5) 左边2>3为假,所以整个表达式就为假,右边的表达式不执行。
-
asd8532
#include <stdio.h>
int main(){
int x;
printf("%d\n",(2>3)&&(x=5));//0
printf("%d\n",(2<3)&&(x=5));//1
return 0;
}#include <stdio.h>
int main(){
int x=1;
int y=(2>3)&&(x=5);//x=1,2<3已经为假了,后面的直接省略了不去计算了,加快程序的运行效率
int z=(2<3)&&(x=5);//x=5
return 0;
}