内存分配
Zmyths: https://blog.csdn.net/zcyzsy/article/details/69788884
尾递归
在看python代码的时候,发现尾递归是对递归函数的优化,通过编译器优化,但python3.7.1暂并不支持。
Zmyths: https://blog.csdn.net/zcyzsy/article/details/77151709
https://www.cnblogs.com/catch/p/3495450.html
int func(int n)
{
if (n <= 1) return 1;
return (n * func(n-1));
}
递归函数func的每下一级都需要依赖当前这一级的变量n,所以func的栈空间没法得到释放
int tail_func(int n, int res)
{
if (n <= 1) return res;
return tail_func(n - 1, n * res);
}
递归函数tail_func的下一级函数有独立的变量传入,并不需要当前这一级的,当这一级函数执行完成之后,就可以释放当前这一级函数所占用的栈空间