递归的使用 没有明白~求教
我看的书是c primer plus//程序清单9.6 递归
#include <stdio.h>
void sum (int n);
int main (void)
{
sum(1);
return 0;
}
void sum (int n)
{
printf("one %d %p\n",n,&n);
if (n < 4)
sum(n+1);
printf("two %d %p\n",n,&n);
}
//标准答案:
one 1 xx
one 2 xx
one 3 xx
one 4 xx
two 4 xx
two 3 xx
two 2 xx
two 1 xx
//分析
sum (1)
{
one 1 xx
if (1 < 4)
sum (2)
one 2 xx
if (2 < 4)
sum (3)
one 3 xx
if (3 < 4)
sum (4)
one 4 xx
if (4 < 4) //假 放弃 进行下一段
two 4 xx //最后判断真为4 所以保存为4 结束..我不知道另外3个是怎么运行的 不懂...读了好几遍都没懂
}