c++中tail recusion怎么翻译
发布网友
发布时间:2022-05-16 21:18
我来回答
共3个回答
热心网友
时间:2023-09-11 00:39
tail recusion是尾递归,函数式编程中的一个概念。
当编译器检测到一个函数调用是尾递归的时候,它就覆盖当前的活动记录而不是在栈中去创建一个新的。编译器可以做到这点,因为递归调用是当前活跃期内最后一条待执行的语句,于是当这个调用返回时栈帧中并没有其他事情可做,因此也就没有保存栈帧的必要了。通过覆盖当前的栈帧而不是在其之上重新添加一个,这样所使用的栈空间就大大缩减了,这使得实际的运行效率会变得更高。虽然编译器能够优化尾递归造成的栈溢出问题,但是在编程中,我们还是应该尽量避免尾递归的出现,因为所有的尾递归都是可以用简单的goto循环替代的。
热心网友
时间:2023-09-11 00:40
tail recusion是尾递归,函数式编程中的一个概念。
热心网友
时间:2023-09-11 00:40
如楼上所说,就是尾递归