int x=0,y=2;,语句if(x=0)y++;执行完毕后变量y的值是多少?

求助啊··
2025-05-14 12:04:06
推荐回答(1个)
回答1:

楼主,这个题目这样来解读。

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),编译器会报错的。谢谢