整个执行空间在最外层的函数栈上,后进先出的顺序,直到达到递归退出条件,当前点的递归调用结束,才会继续执行递归调用点下面的代码(注释:在当前点的递归调用是调用的整个函数栈,达到退出点后,调用该层函数栈中的‘}’,然后返回上一层,继续从递归调用处往下面执行,一直到该层函数栈的‘ }’,以此类推……)。
unsigned int funcFactorial(unsigned int n)
{
static int count = 0;
++count;
if(n == 0) return 1;
int res = n*funcFactorial(n-1);
cout <<"test" <<endl;//此处验证具体步骤
cout <<count <<endl;
return res;
}
int main()
{
funcFactorial(5);
return 0;
}