c++ - C++ 是否限制递归深度?

c++ - C++ 是否限制递归深度?

Python 对递归调用有一个可调的限制,而 C++ 则受堆栈大小的限制。

此外,许多语言或编译器可以通过删除调用者的堆栈帧来优化尾递归,这样就不会消耗额外的堆栈空间。(在尾递归中,调用函数唯一要做的就是在进行递归调用之后返回递归调用的返回值。)

int fact(int n, int accum=1){

if (n==0) return accum;

else return fact(n-1,n*accum); //tail recursion here.

}

Python不优化尾递归(但是stackless Python可以),C++不需要尾递归优化,但我相信gcc优化了尾递归。JVM 不会优化尾递归,尽管 Scala 语言在某些常见的文档案例中会这样做。Scheme 和 Lisp(可能还有其他函数式语言)要求优化尾递归。

❈ ❈ ❈

相关文章

✧ ✧ ✧
足球竞猜中,不知道什么是波胆投注你就亏大了
bt365体育在线投注

足球竞猜中,不知道什么是波胆投注你就亏大了

📅 07-09 👁️ 4556
成为小米代理商需要多少钱?深度解析成本及盈利
365bet足彩网上投注

成为小米代理商需要多少钱?深度解析成本及盈利

📅 08-06 👁️ 7190
王者荣耀爆料: 5月17日进击号墨子限时上架, 价格和赵云一样