c语言读程序题,正确答案是c,为啥输出从0开始啊,会的博主可以教教我吗。
递进的顺序:n = 5 ==> fun(n-1)
==> n = 4 ==> fun(n-1)
==> n = 3 ==>fun(n-1)
==> n = 2 ==> fun(n-1)
==> n = 1 ==> fun(n-1)
==> n = 0
回归的顺序:
0 <== printf("%d",n) <== n=0 <==
1 <== printf("%d",n) <== n = 1 <==
2 <== printf("%d",n) <== n = 2 <==
3 <== printf("%d",n) <== n = 3 <==
4 <== printf("%d",n) <== n = 4 <==
5 <== printf("%d",n) <== n = 5 <==
它一直递归到0才不继续往下递归,输出然后回去
因为他是先运行fun()再运行printf。你可以将两个调换位置,就会先输出5了