【发布时间】:2017-10-07 17:59:39
【问题描述】:
我运行以下 C 程序
#include <stdio.h>
int main() {
int x = 5, y = 6, z = 3, i;
i = y > x > z;
printf("%d\n", i);
}
并获得0 的输出。
同样,当我跑步时
#include <stdio.h>
int main() {
int x = 5, y = 6, z = 3, i;
i = y > x && x > z;
printf("%d\n", i);
}
我的输出为1。谁能解释一下这背后的逻辑?
【问题讨论】:
-
6 > 5 == 1->1 > 3 == 0 -
如果您了解这些运算符的工作原理,那应该是不言自明的。这里唯一可能有点微妙的是运算符关联性,其中关系运算符保证从左到右。即保证表达式等价于
(y > x) > z。