首页 理论教育C语言程序设计实用教程:函数嵌套调用技巧

C语言程序设计实用教程:函数嵌套调用技巧

【摘要】:但是允许在一个函数的定义中出现对另一个函数的调用,即函数的嵌套调用。图5.9函数嵌套调用与子程序嵌套类似,是在执行主函数main()中调用函数a()的语句时,转去执行函数a();在函数a()中调用函数b()时,转去执行函数b();在函数b()执行完毕,返回函数a()的继续执行;函数a()执行完毕,返回主函数main()。函数嵌套调用举例。图5.11程序运行结果统计一批数据中大于平均值的数据总数。图5.12程序运行结果

在C语言程序中,不允许函数嵌套定义,各函数平行,不存在上一级函数和下一级函数的问题。但是允许在一个函数的定义中出现对另一个函数的调用,即函数的嵌套调用。这与其他语言的子程序嵌套类似。其关系如图5.9 所示。

图5.9 函数嵌套调用

与子程序嵌套类似,是在执行主函数main()中调用函数a()的语句时,转去执行函数a();在函数a()中调用函数b()时,转去执行函数b();在函数b()执行完毕,返回函数a()的继续执行;函数a()执行完毕,返回主函数main()。

【例5.10】函数嵌套调用举例。

程序运行结果如图5.10 所示。

图5.10 程序运行结果

例5.10 中,主函数main()调用函数fun1(),实参x、y 的值分别传送给函数fun1()的形参a 和b,执行语句“a+=a;b+=b”之后,a 等于4,b 等于14,然后执行语句“c=fun2(a,b)”调用函数fun2()。此时,函数fun1()中实参a、b 的值传送给函数fun2()中对应的形参a、b,进入函数fun2()执行,返回值是2,返回到函数fun1()中的“c=fun2(a,b)”,接着继续执行语句“return c*c”,函数fun1()返回值是4,返回到主函数main()中的printf()函数,输出结果“The result is:4”。

【例5.11】求圆柱体体积。

(www.chuimin.cn)

程序运行结果如图5.11 所示。

图5.11 程序运行结果

【例5.12】统计一批数据中大于平均值的数据总数。

程序运行结果如图5.12 所示。

图5.12 程序运行结果