if(x=0)中只有一个等号表示赋值。

执行以下程序段后,x的值为0,y的值为1。
int x, y;
if (x = 0) y = 0;
else y = 1;
if中只有一个等号 ,表示赋值,不表示判断,y不应该为0吗。

if里面判断相等要用==,=是赋值,x被赋值成0,if条件就是false,就走else分支了

是先赋值后,再判断,依然是要进行判断的。

x = 0 最终表达式 的值为 0, if(0) 不成立, y = 1