函数的嵌套和递归调用
上一节
下一节
函数的嵌套调用
在C语言中,函数间无从属关系,各函数的定义是平行的、独立的。
不允许嵌套定义函数(即在一个函数的内部定义另一个函数),但可以嵌套调用,即在调用一个函数的过程中,被调用的函数又可以调用另一个函数。
下图是函数两层嵌套调用的示意图。其中带箭头的实线段为程序执行的方向和函数调用的流程示意,带箭头的虚线段为被调函数的返回的流程示意。

嵌套调用执行过程为:
首先从main()函数开始执行程序,当遇到调用fa函数的语句时, 跳到函数fa去执行;在执行函数fa的过程中,当遇到调用fb函数的语句时,跳到函数fb去执行;在执行函数fb的过程中,当遇到return语句或该函数的最外层“}”时,返回函数fa,从调用fb函数语句的下一条语句继续执行fa;在函数fa中,当遇到return语句或该函数的外层“}”时,返回到main函数,从调用fa函数语句的下一条语句继续执行;最后,遇到main函数的外层“}”时,程序运行结束。
函数的递归调用
函数的递归调用指的是函数直接或间接地调用函数本身。




