谁能告诉我一个函数里两次或多次递归时,堆栈的调用过程吗?
#include <iostream>
using namespace std;
void dosomething(int);
int _tmain(int argc, _TCHAR* argv[])
{
int value=5;
dosomething(value);
system("pause");
return 0;
}
void dosomething(int a)
{
a-=1;
if(a>0)
{
dosomething(a);
dosomething(a);
}
cout<<"a:"<<a<<endl;
}
[解决办法]
#include <iostream> using namespace std; void dosomething(int); int main(int argc, char* argv[]) { int value=5; dosomething(value); return 0; } void dosomething(int a) { a-=1; if(a>0) { cout<<"fn1-----------"; dosomething(a); cout<<"fn2======"; dosomething(a); } cout<<"a:"<<a<<endl; }