a=b 就是将b的值赋给a,再返回a, if语句中间是个bool型号变量,你所说的a == b是个判断语句,也是bool型的,如果用成a=b 最后就相当于if(b)它会将b 隐式的转为bool进行判断,也是合法的。
if(a=b) ,是合法的,只要b的值不是0或者flase,那么if的判断是真,即可运语句行x++;因为,if(a=b),先运行a=b,再检查a(int等数值类型)是0还是非o,或者检查a(bool)是真还是假。