2 fat cai niao fat_cai_niao 于 2015.10.23 23:52 提问

二级。。。C语言。。。求大神

b最后输出为什么等于4啊。。。想不通。。。求大神。。明天二级考试了。。。急。。。图片

69个回答

wwwsssaaaddd
wwwsssaaaddd   2015.10.24 00:43
已采纳

关键在于这个条件表达式:(++a < 0) && !(b-- <=0)
++a,++在a前,那么(++a < 0)a自增1后在于 0比较大小,结果是0 < 0 = false。
这样上面表达式左侧为false,无论右侧是什么结果都不会影响整个表达式的结果,这种情况右侧就不会被执行,所以b还是最初赋的值4。

caozhy
caozhy   Ds   Rxr 2015.10.24 00:17

因为&&前面的条件为false
后面的b--没有执行。

lanmushan
lanmushan   2015.10.24 00:43

4没错,判断左边为真,才判断右边的,如果左边为假,那么右边的程序不会去判断!

havedream_one
havedream_one   2015.10.24 07:29

由于a=-1,++a<0,执行之后a = 0,所以表达式为false,则&&直接返回false,不会再继续检测后面的表达式,所以b没有机会执行b--

u012505618
u012505618   2015.10.24 00:13

因为是b--啊,程序是按步骤来的,在那一行代码中,b的值是不变的,然后就被输出了
但是++a是要变值的

u012505618
u012505618 回复cxlovu: 我发现我回答错了。楼下的更对
大约 2 年之前 回复
jghtrlhjdghtjgut
jghtrlhjdghtjgut   2015.10.24 05:06

菜单交回厨房,点餐排队,用手机叫好,请问排队叫号怎么实现?

jghtrlhjdghtjgut
jghtrlhjdghtjgut   2015.10.24 05:05

菜单交回厨房,点餐排队,用手机叫好,请问排队叫号怎么实现?

jghtrlhjdghtjgut
jghtrlhjdghtjgut   2015.10.24 05:06

菜单交回厨房,点餐排队,用手机叫好,请问排队叫号怎么实现?

jghtrlhjdghtjgut
jghtrlhjdghtjgut   2015.10.24 05:05

菜单交回厨房,点餐排队,用手机叫好,请问排队叫号怎么实现?

jghtrlhjdghtjgut
jghtrlhjdghtjgut   2015.10.24 05:06

菜单交回厨房,点餐排队,用手机叫好,请问排队叫号怎么实现?

共69条数据 1 3 4 ... 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!