Pan*_*ato 4 c if-statement post-increment
#include <stdio.h>
int main()
{
int x = 0;
if (x++)
printf("true\n");
else if (x == 1)
printf("false\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
false
Run Code Online (Sandbox Code Playgroud)
为什么输出错误?
x++是后增量; 这意味着使用的值x然后递增.如果是这样,那么x=0应该使用,答案应该是真的.
在C中,0被视为false.在x++,表达中使用的值x,即,0它变为
if(0) // It is false
printf("true\n");
Run Code Online (Sandbox Code Playgroud)
身体if没有被执行.之后x就是现在1.现在检查条件else if,即x == 1检查.因为x是1,这个条件评估true,因此它的身体被执行并打印"false".