#include <stdio.h>
int main()
{
int x = 0;
if (x++)
printf("true\n");
else if (x == 1)
printf("false\n");
return 0;
}
输出:
false
为什么输出是假的?
x++
是后增量;这意味着 x
的值被使用,然后递增。
如果是这样,则应使用 x=0
并且答案应该为真。
最佳答案
在 C 中,0
被视为 false
。在x++
中,表达式中使用了x
的值,即0
,变成了
if(0) // It is false
printf("true\n");
if
的主体没有被执行。之后 x
现在是 1
。现在检查 else if
中的条件,即 x == 1
。因为 x
是 1
,这个条件评估为 true
因此它的主体被执行并打印 “false”
。
关于c - 递增运算符在 if 语句中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21435072/