能否给我解释下下面c语言中的每个步骤最后是怎么得出3,0

喜多多_420 |浏览647次
收藏|2020/02/20 15:03

满意回答

2020/02/20 15:14

这个考的是++的优先级。先区分一下:++a,在a存储的值上增加1并向使用它的表达式“返回”新的a值;a++,向使用它的表达式“返回”a的值,再对a加1。我们直接看if()语句中的控制条件,那个省略了一点,++a等价于++a!=0,意思是先执行++操作,即给a+1,然后进行判断,如果不等于0,则执行第一个printf ("%d,%d",a,++b),如果a等于0,则执行第二个。很明显,a=0,所以执行第二个。在第二个printf ("%d,%d\n",b++,a);中,我们只需要分析b++;所以先返回b的值,然后直接输出了,等不到加1。所以b的值不变,故b还是3所以最后输出3,0还有问题吗,谢谢采纳,Thanks♪(・ω・)ノ

木斯皮尔翰

其他回答(1)
  • 首先if (++a) 因为是先++,所以先计算a=a+1=0,再判断if(0)条件不成立执行else部分,也就是printf("%d,%d\n",b++,a);因为b是后++,所以输出时,它的值不变为3,而a上面计算结果为0所以最终结果为3,0
    回答于 2020/02/20 15:26
0人关注该问题
+1

 加载中...