![](/img/trans.png)
[英]Variable inside if block is assigned to zero even if the if expression evaluates to false in C
[英]zero is greater than or equal to zero evaluates to false
i = 0;
if(0 <= i <= 0)
这返回false。
我一点都不明白。 在监视窗口中,当我分别测试它们时,我还尝试将语句读取为(0 <= i && i <= 0)
0 <= i
返回false,而i <= 0
返回true。 他们俩都应该是真的。 我不确定这是否精确,但是由于要对值进行硬编码,因此我不认为这是精确的。请帮助我理解这个基本问题。
如果有帮助,我尝试通过获取相交点来评估点是否在直线上,然后检查它是否在x和y起点和终点之间。 当我尝试检查x或y在其轴上时,这将成为一个问题,然后您会遇到检查0是否在0和0之间或等于0与0之间的问题。
关系运算符的链接是不可能的(根据期望产生有效的结果),您需要编写单独的指令来验证每个条件。
由于缺乏明确的括号和LTR关联 ,
if(0 <= i <= 0)
被评估为
if( (0 <= i) <= 0)
归结为
if ( 1 <= 0)
产生0(FALSE)。
也就是说,与
当我分别测试它们时,我还尝试将语句读取为
(0 <= i && i <= 0)
0 <= i
返回false,而i <= 0
返回true。 他们都应该是真的
是不正确的, 它们都是真的 。 你自己看
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.