我使用以下两个函数来测试MSVC08下的尾递归优化:
为什么TailRecursively1被优化了,但是TailRecursively2导致了堆栈溢出?
int TailRecursively1(int i)
{
return TailRecursively1(i);
}
int TailRecursively2(std::string str)
{
return TailRecursively2(str);
}
为什么TailRecursively1被优化了,但是TailRecursively2导致了堆栈溢出?
TailRecursively3(std::string&)
呢(注意&
)? - Matthieu M.int TailRec(std::string& s) { return TailRec(s); }
是尾递归的 - 递归后没有剩余操作需要执行。 - sdkljhdf hda