0
Explain it plzzz
#include <stdio.h> int main() { int x=0,y=0; if(x++&&y++) printf("x=%d y=%d",x,y); else printf("y=%d x=%d",y,x); return 0; }
2 Answers
+ 3
Here x++ is 0 which is false so it will not check second condition.
So y = 0 because didn't check next condition.
x = 1 because x is incremented by 1 after doing operation.
0
in C, any number which is null has the boolean value 'False', else, it's 'True'.
but x++ and y++ are postfix incrementation, so x and y will be tested first, before incrementing.
to test if 'a and b' is true,
if a is false, no need to test b, a and b is automatically false,
if a is true, then a and b has the value of b
in our case a=x++=0 which is false, (but after the test, x is incremented to 1)
so no need to test y++ anymore. the if condition is not satisfied and it jumps to the esle statement where 'y=0 x=1' is printed
https://www.sololearn.com/learn/C/2917/