帮帮看一下c的值是多少?谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:22:27
#include <stdio.h>
void main()
{int a=25,b=14,c=19;
if (a++<=25&&b--<=2&&c++)
printf("sss");
else printf("%d,%d,%d",a,b,c);
}
为什么不是20? 我执行这个程序显示c的值为19

26,13,19

在判断条件:a++<=25&&b--<=2&&c++时,
检测a++<=25,为真a=26,然后检测b--<=2,为假,但是已经执行b--,所以b=13,而后面的c++不再检测...
上面的条件为假,所以执行else语句块,输出....

c的值为19

因为当程序执行到b--<=2的时候,条件不满足就跳出if了,故后面的c++就不再执行了。故为19

a=26
b=13
c=19

因为到b--<=2这个就是0了,所谓短路,就不进行后边c++的运算,c值不变。

是19
这是短路现象 a++<=25这个语句是真的,b--<=2是假的,所以整个括号里的语句已经为0了,根本就不用计算c++的值,所以c=19