龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

学点 C 语言(35): 函数 - 递归[图](3)

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
本例输出效果图: 分析: 程序运行到 A, 输出了第一行. 此时 n=1, 满足 ...如此循环, 一直到 n=4, A 可以执行, 但因不满足条件 B 执行不了了; 终于在 n=4 时得以执

  本例输出效果图:

  分析:

  程序运行到 A, 输出了第一行.

  此时 n=1, 满足 < 4 的条件, 继续执行 B 开始了自调用(接着会输出第二行); 注意 n=1 时语句 C 还有待执行.

  ...如此循环, 一直到 n=4, A 可以执行, 但因不满足条件 B 执行不了了; 终于在 n=4 时得以执行 C.

  但此时内存中有四个函数都等待返回(分别是 n=1、2、3、4 时), 咱们分别叫它 f1、f2、f3、f4.

  f4 执行 C 输出了第五行, 函数返回, 返回给 f3(此时 n=3), f3 得以继续执行 C, 输出了第六行.

  f3 -> f2 -> 继续 C, 输出了第七行.

  f2 -> f1 -> 继续 C, 输出了第八行, 执行完毕!

  如此看来, 递归函数还是很费内存的(有时不如直接使用循环), 但的确很巧妙.

精彩图集

赞助商链接