c - 零大于或等于零计算为假

标签 c relational-operators

i = 0;
if(0 <= i <= 0) 

这会返回 false。

这个我完全不懂。 Watch window我还尝试将声明改为 (0 <= i && i <= 0)当我单独测试它们时 0 <= ii <= 0 时返回 false返回真。他们都应该是真的。我不确定这是否是一个精确的事情,但我不这么认为,因为我正在硬编码其中的值。请帮助我理解这个基本问题。

如果有帮助,我正在尝试通过获取交点然后检查它是否在 x 和 y 起点和终点之间来评估点是否在线上。当我试图检查 x 或 y 何时在其轴上时,这就成了一个问题然后你遇到了检查 0 是否介于或等于 0 和 0 之间的问题。它是这样它会落在线上。

最佳答案

关系运算符的链接是不可能的(要根据预期产生有效结果),您需要编写单独的指令来验证每个条件。

由于 absence of explicit parenthesis and LTR association , 像这样的声明

  if(0 <= i <= 0) 

被评估为

  if( (0 <= i) <= 0) 

归结为

  if ( 1 <= 0)

产生 0 (FALSE)。

也就是说, claim 涉及

I also tried making the statement read (0 <= i && i <= 0) when I test them individually 0 <= i returns false while i <= 0 returns true. they both should be true

不正确,它们都是真的See for yourself

关于c - 零大于或等于零计算为假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42527575/

相关文章:

c++ - 通过运行应用程序以编程方式确定正在使用的共享库

c - C 编程中的数组与局部变量

c - 添加逻辑运算的结果是否定义了行为

c++ - 我可以用算术运算的方式编写关系运算符吗?

c++ - 为什么在 C++ 中使用关系运算符创建的模板函数不能正确处理字符串?

c - 直接将左移运算的结果赋值给一个变量和C中的左移赋值运算有什么区别?

c - 如何在代码中使用白色

从 makefile 调用 flex

c - malloc 内存上的 memcpy 运行不佳

c - 关系运算符 == 在 C 中如何工作?