2017-07-17

在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。

看到这个对递归函数有了新理解,先调用的函数被压倒了栈底,等待他之上的函数全部弹出后,才能执行他。在递归中也就是只有等到那个特殊的条件触发,返回最上面的函数值时,才能一步步把所有函数都弹出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:C语言函数调用栈(一)C语言函数调用栈(二) 0 引言 程序的执行过程可看作连续的函数调用。当一个函数执...
    小猪啊呜阅读 10,255评论 1 19
  • 1 Android activity生命周期 onCreate() ----- onStart() ----- o...
    青椒丶肉丝阅读 3,427评论 0 0
  • 猫 张计划 和男朋友分手后,背着行囊我独自来到这陌生的西北都市。 当时的心情如同城市里那雾蒙蒙的天空一样灰...
    陌头柳色阅读 1,765评论 0 0
  • 这些日子都没有正经写什么东西了,似乎是在自我怀疑中度过的。原本以为最近的自己一直都过得很喜悦,内在的能量也不断的向...
    穆勒书信时光阅读 2,405评论 0 1
  • ——挑战自己,改变自己,感恩有你 褚旭践行自己承诺90天记录(9/90) [奋斗]未来90天,我要持续践行达成以下...
    褚洪嘉阅读 891评论 0 0

友情链接更多精彩内容