c语言中的递归之return语句*
c语言中使用递归应满足以下三个条件:
(1)存在递归关系
(2)有结束条件
(3)有return语句
这里着重讲一下return语句
在函数中每一次调用函数本身都会有一个return语句,那么怎么保证return语句所返回的值就是这一次函数调用呢?这个问题可以用如下程序体现:
要求第五个人的年龄
问第五个人多少岁,他说比第四个人大两岁,第四个人说比第三个人大两岁,.......
,第一个人说他10岁。
在这里插入代码片
int age(int n)
{
int c;
if(n==1)
c=10;
else
c=age(n-1)+2;
return (c);
}
怎么保证相应的return返回给相应的age(n),这就涉及到存储方式:栈;
栈是一种死胡同式的存储方式,在存储东西的时候若是按照a,b,c存入,则取出来时是按c,b,a的顺序。每一层函数依次放进栈。最底层的函数完成后一层一层跳出。return也是每一层函数的一个执行语句,某一层的return没有完成这一层就跳不出来,按照栈的方式,后面的函数也就无法执行return语句,这样就实现了每一层的return语句与这层函数相对应。