这个考的是++的优先级。先区分一下:++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♪(・ω・)ノ