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中间 |