int main(void) { static int=5; if(--i) { main(); printf("%d",i); } }
the output of above program is---
0000
But I think it should be---
1234
I dont know why?please help me.
The reason for the zeros is that i is decremented down to zero before the very first printf statement is run. As it unwinds, it prints i (which is still zero) each time.
i
printf
It would be better to use a separate function that main() calls and passes a parameter to (and then pass the parameter to each call rather than using a static variable).
main()
2.1m questions
2.1m answers
60 comments
57.0k users