#include <stdio.h>
int main(){
int age(int n);
printf("No5 age is:%d\n",age(5));
return 0;
}
int age(int n){
int c;
if(n==1)
c=10;
else
c=age(n-1)+2;
return c;
}
首先执行main函数里面的age(5),通过5这个实参传递到age函数int age(int n)中的形参去,age函数的形参先是5,然后去执行下面的语句,n不等于1时去执行c=age(n-1)+2,age(n-1)是调用前一个函数的意思,现在age(5-1)就是执行age(4)这个函数,然后age(4)n不等于1,执行age(4-1),然后又调age(3)这个函数,直到age(1)里面的参数为1时则退出这个回溯,然后还没有结束,还需要进行递推,这样age(2)函数就是等于age(2-1)+2,而age(1)等于10,所以age(2)等于10+2等于12,然后一直推出到age(5-1)+1去就可以算出最后结果18!