unexpected output in C (recursion)

前端 未结 3 1605
迷失自我
迷失自我 2020-11-28 00:03
int main(void) {
 static int=5;
 if(--i) {
    main();
    printf(\"%d\",i);
   }
 }

the output of above program is---

0000

But I t

3条回答
  •  时光取名叫无心
    2020-11-28 00:40

      [First call:  i->4 and call main()]
      [Second call: i->3 and call main()]
      [Third call:  i->2 and call main()]
      [Fourth call: i->1 and call main()]
      [Fifth call:  i->0 and condition false as it gives 0.]
    

    Now it's time for the printing of value of i, which was the next line after main(). Control go back to fourth to first call to print value of i.

    [Fourth Call: printing value of i which is 0.]
    [Third call:  printing value of i which is 0.]
    [Second call: printing value of i which is 0.]
    [First call:  printing value of i which is 0.]
    

提交回复
热议问题