关于C语言的问题,大神进来解答下啊
发布网友
发布时间:2024-10-21 20:13
我来回答
共4个回答
热心网友
时间:2024-11-21 23:42
&& 运算 只要前者不满足 就不运算后者
事实上b--是没有执行的 因为 ++a =0 0<0为假 所以&&后面的运算就直接跳过了。。
所以b的值是不变的
||运算也是一个道理 ||只要前者满足 后者就不参与运算 否则才运算后者
热心网友
时间:2024-11-21 23:43
b-- 是把 b 变成了 0
你看到的输出结果是 else 分支 里的结果 顺序输出了 a 和 b
如果满意答案,请采纳为最佳答案,谢谢~~追问。。我打错了,应该是else printf("%d,%d\n",b,a); 才对,大神接着给我解答下好么?
热心网友
时间:2024-11-21 23:43
应该是输出0,1吧~~
if((++a<0)&&!(b--<=0))
这句里面执行++a之后~(++a)=0,那么第一个括号值为0。
逻辑&&运算时~如果前面的式子为0就不再计算后面的式子了.
a只执行++a一次~~而b没变过~最后输出应该是0,1
热心网友
时间:2024-11-21 23:44
a=1,++a以后,a还是1
b=1,b--以后,b变成0
++/--在前,a是不变的,要下一次才变,++/--在后是先++/--1
具体的说,if((++a<0)&&!(b--<=0))程序到达这一段时,++a是先读取++,然后是a,所以a不变
而b--是先读取b,然后读取--,这样b就减少1了,这样说比较容易理解,但程序具体是不是这样的,我不能保证==!