c语言中的递归之return语句

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语句与这层函数相对应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值