首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

麻烦详细讲一下这个程序的递归过程,该如何解决

2012-03-24 
麻烦详细讲一下这个程序的递归过程新手,简单的递归都看不懂。麻烦高手讲一下。C/C++ code#include iostream

麻烦详细讲一下这个程序的递归过程
新手,简单的递归都看不懂。麻烦高手讲一下。

C/C++ code
#include <iostream>using namespace std;int test(int i){    for (;i<4;)        cout<<test(++i);    return i;}void main(){    test(1);    getchar();}

就是入栈出栈的过程,为什么循环执行了7次。
多谢各位了。

[解决办法]
单步调试或者看该程序的反汇编的信息,看反汇编也可以看到如何递归的。我想除了循环过程,还有一个返回的过程。
[解决办法]
test(1)调用 cout<<test(2) cout<<test(3) cout<<test(4)
test(2) 又会调用 cout<<test(3) cout<<test(4)
test(3)又会调用 cout<<test(4)




[解决办法]
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出

[解决办法]
探讨

递归的话,用单步调试是解决不来的。

热点排行