求助大神c语言问题(2>3)&&(x=5)结果是1?(2<3)&&(x=5)结果是5?为什么?

(2>3)&&(x=5)结果是1?(2<3)&&(x=5)结果是5?为什么?
帝国神鹰
浏览 2438回答 4
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; }
打开App,查看更多内容
随时随地看视频慕课网APP