c语言----函数的递归

        C允许一个函数调用其本身.这个调用的过程被称作递归.递归有时很难处理 , 而有时却很方便实用 . 当一个函数调用自己时 , 如果编程中没有设定终止递归的条件检测 , 它会无限制地进行递归调用 . 所以需要谨慎调用处理 . 
        递归一般可以代替循环语句使用 , 有些情况下使用循环语句比较好 , 而有些时候使用递归更有效 . 递归方法虽然使程序优美,但其执行效率却没有循环语句高 . 
   例题 :   
 

输出如下 : 





分析:
        首先main()函数调用了up_and_down(  ) . 于是up_and_down(  )中形式参量 n 的值为1 , 故打印语句 #1 输出了 Level 1 . 然后,由于 n 的数值小于 4 , 所以up_and_down(  )使用参数 n+1 即数值 2 调用了 up_and_down(  ) .使得 n 在第二级调用中被赋值 2 , 打印语句 #1 输出的是Level 2 . 下面俩次调用分别打印出Level 3和Level 4.
        当开始执行第 4 级调用时 , n 的值是 4 , 因此 if 语句条件不满足 . 这时不再继续调用up_and_down(  ) 函数 . 第 4 级调用接着执行打印语句 #2 ,即输出 LEVEL 4,因此 n 的值是 4 . 现在函数需要执行 return 语句 , 此时第 4 级调用结束 , 把控制返回给该函数的调用函数 , 也就是第 3 级调用函数 . 第 3 级调用函数中前一个执行过的语句是在 if 语句中进行第 4 级的调用 . 因此 , 它开始继续执行其后续的代码 , 即执行打印语句 #2 , 这将会输出 LEVEL 3 . 当第 3 级调用结束后 , 第 2 级调用函数开始继续执行 , 输出了LEVEL 2 . 以此类推

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值