How does the increment operator work in an if statement?
c, if-statement, post-increment
Solution
In C, `0` is treated as `false`. In `x++`, the value of `x`, i.e, `0` is used in the expression and it becomes
if(0) // It is false
printf("true\n");
The body of `if` doesn't get executed. After that `x` is now `1`. Now the condition in `else if`, i.e, `x == 1` is checked. since `x` is `1` , this condition evaluates to `true` and hence its body gets executed and prints `"false"`.
Problem
``` #include <stdio.h> int main() { int x = 0; if (x++) printf("true\n"); else if (x == 1) printf("false\n"); return 0; } ``` Output: ``` false ``` Why is the output false? `x++` is post increment; this means that the value of `x` is used then it is incremented. If it is so, then `x=0` should be used and the answer should be true.