i<j<k的C语言表达
表达式i < j < k在C语言中是合法的,但是它不是你所期望的意思。因为<运算符是左结合的, 所以这个表达式等价于(i < j) < k.
换句话说, 表达式首先检测l.是否小于j, 然后用比较后产生的结果1或0来和K进行比较。 表达式不测试j是否位于i和K之间,正确的表达式应该是i < j && j < k.
1  | 
  | 
在Python中没有这样的问题,如下面程序:
1  | #!/usr/bin/python  | 
输出的结果为:
1  | j不在i和k中间  | 
表达式i < j < k在C语言中是合法的,但是它不是你所期望的意思。因为<运算符是左结合的, 所以这个表达式等价于(i < j) < k.
换句话说, 表达式首先检测l.是否小于j, 然后用比较后产生的结果1或0来和K进行比较。 表达式不测试j是否位于i和K之间,正确的表达式应该是i < j && j < k.
1  | #include <stdio.h>  | 
在Python中没有这样的问题,如下面程序:
1  | #!/usr/bin/python  | 
输出的结果为:
1  | j不在i和k中间  |