c++中为什么if(a=b) x++(设有int x,a,b,c)是合法的if语句?不应该是两个等号吗?

如题所述

a=b 就是将b的值赋给a,再返回a, if语句中间是个bool型号变量,你所说的a == b是个判断语句,也是bool型的,如果用成a=b 最后就相当于if(b)它会将b 隐式的转为bool进行判断,也是合法的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-11
if(a=b) ,是合法的,只要b的值不是0或者flase,那么if的判断是真,即可运语句行x++;
因为,if(a=b),先运行a=b,再检查a(int等数值类型)是0还是非o,或者检查a(bool)是真还是假。
相似回答