如何在C++中判断int变量的范围

if(0<12<=8)这个条件也是true的吗? 本来想对int变量m_imasklen做一下判断,写了
if(0<m_imasklen<=8)
esle if(8<m_imasklen<=16)
else if(16<m_imasklen<=24)
else if(24<m_imasklen<=32)
结果发现不管改不改变m_imasklen的值,总是执行第一个if里面的语句,然后我就测试了一下,看看if(0<12<=8),结果还是执行了这个if里面的语句,请问是什么原因呢?

这个我也遇到过,其原因在于 操作符 ‘<’ 是有返回值的.
参考MSDN发现操作符 '<' 的返回类型为bool,而c++中bool的true或false其实就是非零或零。
如题
你这样写(0<m_imasklen<=8)先执行了0<m_imasklen返回无论是true还是false,其实就是1或0,然后用
1或0<=8来继续判断,结果必是true

也就是说不论你的m_imasklen是什么值 ,if(0<m_imasklen<=8)都是true.
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-27
这什么乱七八糟的,这谁交你的语句啊。。哪儿能这么写啊。。真是的!
第2个回答  2012-11-27
要分开写啊!0<m_imasklen and 8>=m_imasklen
相似回答