麻烦详细讲一下这个程序的递归过程,该如何解决
麻烦详细讲一下这个程序的递归过程新手,简单的递归都看不懂。麻烦高手讲一下。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里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出
[解决办法]