【问题标题】:What does exit(0) do inside a recursive function?exit(0) 在递归函数中做了什么?
【发布时间】:2026-02-06 11:15:01
【问题描述】:

有没有办法在递归函数中退出程序?如果有办法,如果我这样退出会发生什么?递归函数中的 exit(0) with 实际上是做什么的?

【问题讨论】:

  • 那确实会退出程序。你有什么理由怀疑它不会吗?
  • 退出是最终的延续,但它闻起来很糟糕。你找到它了吗?或者你打算用这个解决什么问题?
  • 您应该在问题中添加语言标签。

标签: recursion


【解决方案1】:

exit(0) 将始终* 使整个应用程序立即退出(状态码为 0)。无论您是否从递归函数中调用它都无关紧要——它与return 完全不同。

*:嗯,几乎总是;有一些疯狂的情况不会,但这不是重点

【讨论】:

  • 如果程序以 exit(0) 在递归内部突然结束,内存中的递归堆栈会发生什么?
  • 堆栈是当前进程地址空间的一部分,当进程退出时,它会与其中的所有其他内容一起消失。