这是我准备考试中的一个问题:
int val = 0;
int x = 0;
int y = 1;
if (x < val < y)
printf(" true ");
else
printf(" false ");
Run Code Online (Sandbox Code Playgroud)
为什么这是真的?我尝试更改x并且val它忽略了这些更改,只要y大于0(so 1, 2, 3...) 语句是正确的。例如:if (3 < 9 < 2)将是真的。
Yun*_*sch 38
( 2 < 9 < 3 )被评估为( ( 2 < 9 ) < 3)。
在第一步中2 < 9被评估为真,这表示为整数值 1 并导致((1) < 3)第二步。
这显然是真的。
你可能想要类似的东西((x < val) && ( val < y))。