0
Why the output comes like that?
Give the reason for this output. int main() { static int i= 5; If (--i) { main(); printf("%d ", i); } } Output : 0 0 0 0
1 Resposta
+ 2
Since i is static, the same variable i is shared for each and every call to main.
Keep that in mind when you trace the program. Trace it at a low level on your own. I'll make a few comments to explain it from a higher level.
It is only when i is decremented to 0 that if (--i) evaluates to false and main() stops being called.
After main() stops being called, the printf statements run.
0 is printed 4 times because main() is called 5 times total with the deepest call printing nothing.
If you want to paste that code somewhere to run it, you'll need to replace "If" with "if" and add #include <stdio.h> at the top.