慕粉1454107902
2016-09-15 21:53
看你们的意思就是这个b++里面的b>=a*2之后++就没用了吗
要注意自增自减运算符的运算规律。
b++就是先运算后自增,++b就是先自增后运算。
b++>=a*2的运算顺序是:
>=左边:第一步:b=9;自增后的结果是10。但是要用第一次输出的b的值去和右式比较。
>=右边;易得结果为10
9>10不成立,所以结果为0。
但是如果程序中要求输出b的值,那么b=10。
如果是++b-a*2,那么运算顺序是:
第一步:b=9,
第二步:b=10,
第三步:式子=0
不知道我这样举例你可有明白?
先计算中间部分,即a*2 && b-a,然后最后带值,比较大小。b++=b=9,a*2&&b-a为假,所以错误;a*2||b-a=10或1,当取1时符合条件,因此正确答案为b。同学还有什么疑问吗?
b++>=a*2计算过程是先判断b>=a*2,再执行b++即b=b+1,所以在这确实没什么意义
就是b在b++>=a*2这个式子运算中还是9,但是这个式子一运算完b的值就变成10了即b+1=10。所以在接下来的运算中b所被付的值就是10了
C语言入门
926212 学习 · 20797 问题
相似问题