楼主,这个题目这样来解读。
if() 语句里面,如果里面的是非零的数,就表示为真,如果是0,就表示为假。现在,把0赋值给x,括号里面的值为0,条件为假,不执行y++,所以,执行完毕 ,x=0,y=2
如果写的是if(x==0) ,那么条件为真,会执行下一句y++,所以,执行完毕,x=0;y=3.
显然是第一种情况。 有可能作者想判断x==0,却写成了赋值语句x=0
所以好的编码风格是我们讲常数放在变量前面判断,如果你写成if(0==x),是对的,写成了if(0=x),编译器会报错的。谢谢