Skip to content

Latest commit

 

History

History
80 lines (53 loc) · 1.64 KB

216-543605-[专业选修]函数自身的嵌套调用.sy.md

File metadata and controls

80 lines (53 loc) · 1.64 KB
show version enable_checker
step
1.0
true

嵌套调用

回忆

  • 上次了解函数
    • 函是信函
    • 是可以把很多语句封装(encapsulate)起来的
    • 甚至可以嵌套使用函数

图片描述

  • 函数可以自己嵌套调用自己么?

构造

图片描述

  • 定义一个add_one函数

图片描述

  • 尝试运行后

图片描述

  • 确实可以嵌套调用

跟踪

  • 在第2行设置断点

图片描述

  • 此时num为0
  • 是最里层add_one的调用
  • 本次应该返回1
  • c继续

继续跟踪

图片描述

  • 此时num为1
  • 是外层的add_one的调用
  • 本次应该返回2
  • c继续
  • 输出结果2
  • 程序结束

汇编理解

  • 红圈
    • 内层调用add_one
    • 参数是0
    • 结果是1
  • 绿圈
    • 外层调用add_one
    • 参数是红圈结果
    • 最终结果是2

图片描述

  • 我们去总结一下

总结

  • 函数确实可以对自身进行嵌套调用
  • 把函数的返回值作为参数传给函数本身

图片描述

  • 函数可以在函数自身里面再调用函数么?🤔
  • 自己调自己?
  • 我们下次再说👋