请问关于递归的一个简单有关问题…

请教关于递归的一个简单问题……
问第5个人多大。(已知第一个人10岁。第5个人比第4个人大2岁,第4个人比第3个人大2岁,第3个人比第2个人大2岁,第2个人比第一个人大2岁。)
int age(int n)
{
int c;
if(n==1)
c=10;
else
c=age(n-1)+2;
return(c);
}
#include<stdio.h>
void main()
{
printf("%d\n",age(5));
}
递归分“回推”和“递推”,请问上面这段程序,回推结束到递推完成之间的详细过程。

------解决方案--------------------
首先说明,在调用任何一个函数,需要保存先前的 现场(主要的 栈底指针,栈顶指针,运算状态字,以及参数的压栈),在退出函数时,都要恢复现场(一般将前面压栈的内容进行出栈)。

这样 递归其实就是函数 一系列调用,只是调用的函数是相同的但是每次传入的参数是不同的。

LZ如果想要了解更多的,请百度 递归 与 栈
------解决方案--------------------
age(5)执行过程:
第n次调用 返回值
#1 c = age(4)+2; 
#2 c = age(3)+2; 
#3 c = age(2)+2; 
#4 c = age(1)+2;
#5 c = 10;返回10;

#4 返回10+2;
#3 返回12+2;
#2 返回14+2;
#1 返回16+2;