【发布时间】:2014-02-17 15:34:20
【问题描述】:
所以我有以下程序:
# define swap(a,b) temp=a; a=b; b=temp;
int main() {
int i, j, temp;
i = 5;
j = 10;
temp = 0;
if (i > j)
swap(i, j);
printf("%d %d %d", i, j, temp);
}
这会导致:
10, 0, 0
我不明白为什么 if (5 > 10) 条件被执行为“真”,即使 5 不大于 10。
【问题讨论】:
-
结果 10, 0, 0 应该给您一个提示,它与评估为 true 的条件无关。
标签: c if-statement conditional-statements false-positive