简单的C++问题,帮下小弟。

来源:百度知道 编辑:UC知道 时间:2024/06/17 20:14:43
a=10; bool b=a++<5&&--a>6;
解释下a等于多少b等于多少,怎么算的。 谢谢。

a=11,b=0

a++<5为false,&&后边的不计算。

a=11,b=0;a++为a+1所以为10+1=11
b是一个bool值因此值只能为0或者1
因为a++=11所以表达式a++<5为假即为0,--a>6虽然为真 但是因为前面的为假所以表达式a++<5&&--a>6 为假即=0

a = 11 , b = 0;
X && Y 两个同时为真的时候才为真,且X为假后面的就不计算了.和&不同,
X & Y 两边都要计算.
所以显然a++后a=11,又11<5是false,自然b=0。

按优先++ -- 先于 < > 先于 && 先于 =
a++ a=11

因为b=a++<5为假,即b=0;

&&后边的不计算( C尽可能是从左向右结合
所a=11 b=0

a++<5 为0

--a>6 为1

0&&1 为0