Q我需要检查一个数字是否在另外两个数字之间。为什么不行?
if(a < b < c)的函数调用是否会工作?
A关系运算符,例如<,都是二元的;它们比较两个操作数并返回真或假(1 或 0)的结果。因此,表达式a < b < c比较a与b,然后检查结果 1 或 0 是否小于c。(为了更清楚地看到这一点,想象一下它被写成(a < b) < c,因为编译器就是这样解释它的。)要检查一个数字是否在另外两个数字之间,请使用如下代码
if(a < b && b < c)
参考文献:K&R1 Sec. 2.6 p. 38
K&R2 Sec. 2.6 pp. 41-2
ISO Sec. 6.3.8, Sec. 6.3.9
H&S Secs. 7.6.4,7.6.5 pp. 207-210