C语言的函数程序的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 06:01:02
#include<stdio.h>
void ppp(int n)
{ if (n<0) return;
printf("%d",n);
ppp(n-1);
printf("%d",n);
}
main()
{ int y=4;
ppp(y);
printf("\n");
}
此程序的答案;4 3 2 1 0 0 1 2 3 4,想求高人帮我分析下这个程序,能帮我把关键的几行的程序讲解下吗?我看不懂啊。

先从main函数开始,把y附值是4 然后调ppp方法把y值传过去,n值大于0,打印n,4,在调用ppp方法参数是n-1也就是4-1=3,3也是大于0,打印3,在调用ppp方法传参n-1也就是3-1=2,2也是大于0,打印2,依次类推,当n=1再调用ppp方法时参数是0了,就不打印了,返回一个0,继续运行main函数,打印0就结束了。

先看下面的MAIN,执行到PPP时再返回到上面,那么N=4,打印一次,然后是N-1=3,再打印一次,所以结果为:4。3。2。1。0

先看main()函数里面的内容,发现ppp(y),则调用上面的ppp()函数,因为main()函数中y=4,这个y相当于ppp()函数中的n=4,此时根据ppp()函数中的内容判断出n>0,所以执行printf("%d",n);然后按照顺序向下一个语句执行,调用ppp()函数,判断n-1后还是>0,再printf("%d",n);依次循环直到n<0 返回n,此时n=0,执行函数中最后一句printf("%d",n); 结果为4 3 2 1 0 0