你知道C语言中的函数调用和嵌套吗? 必须学习的功能模块,你必须要知道!

 2024-02-29 03:04:31  阅读 0

1. 函数调用

什么是函数调用? 通常在C语言中,一个完整的项目程序不可能在一个函数中实现所有的功能。 相反,它是由几个具有不同功能的函数来实现的,函数之间可以互相调用。

当然,这并不意味着你必须单独编写该功能的所有功能模块,但是如果你这样写:

c语言调用语句是什么_c语言中调用语句_c语言中调用是什么意思

我估计你的项目经理以后一定会给你好(ba)话(dao)和(yang)建议(yang)。

c语言调用语句是什么_c语言中调用语句_c语言中调用是什么意思

2. 如何调用函数

函数是C语言的基本元素。 想要实现函数的功能,那么就必须学会正确调用函数。 调用的语法格式如下:

从上面的语法格式可以看出,当我们调用函数时,需要明确函数名和实参列表。 实参列表中的参数可以是常量、变量、表达式或空,每个参数之间必须用逗号分隔。

根据函数在程序中出现的位置,调用函数的方式有以下三种:

1. 将函数作为表达式调用

当函数作为表达式调用时,函数的返回值参与表达式的计算。 在这种情况下,函数必须有返回值。 示例代码如下所示:

2. 将函数作为语句调用

当函数作为语句出现时,该函数就可以作为语句来调用。 示例代码如下所示:

3.作为实参调用函数

当一个函数作为另一个函数的实参时,要求该函数有返回值。 示例代码如下所示:

在上面的语句中,函数max()的返回值被用作()函数的实际参数。

3. 嵌套调用

在C语言中,函数的定义是独立的,即一个函数不能在另一个函数内部定义。

但在调用一个函数时,可以在一个函数内调用另一个函数,这就是函数的嵌套调用。 接下来我们通过一个案例来演示函数的嵌套调用。

案例一:

c语言中调用语句_c语言调用语句是什么_c语言中调用是什么意思

运行结果:

在这种情况下,在 main() 函数中调用 max4() 函数,在 max4() 函数中调用 max2() 函数。

为了让大家更好的理解这个程序的执行过程,我们通过一张图来描述一下:

c语言中调用是什么意思_c语言中调用语句_c语言调用语句是什么

该图显示了一个具有三层嵌套函数调用的程序。 总共分为9步,如下:

(1)执行main()函数的开头;

(2)遇到函数调用语句时,调用max4()函数,流程转移到max4()函数入口;

(3) 执行max4()函数的开头部分;

(4)遇到函数调用语句时,调用max2()函数,流程转移到max2()函数入口;

(5) 执行max2()函数。 如果没有其他嵌套函数,则完成max2()函数的所有操作;

(6)返回max2()函数中调用max4函数的位置;

(7) 继续执行max4()函数未执行的部分,直到max4()函数结束;

(8) 返回main()函数中调用max4()函数的位置;

(9) 继续执行main()函数的剩余部分,直到结束。

& 再学一招:函数调用时最多可以嵌套多少层?

大家肯定会问:“既然嵌套函数调用看起来和普通调用一样,那是不是可以无限层嵌套函数调用呢?”

不幸的是,函数可以嵌套多少层是由程序运行时称为“堆栈”的数据结构决定的。

一般来说,上述程序默认的堆栈大小约为8KB,每个函数调用至少占用8个字节。 因此,根据粗略计算,函数调用最多只能嵌套一千层左右。 如果嵌套函数调用包含很多For变量和参数,则实际值远小于这个数量。

当然,单纯通过手动编写代码来编写一千层嵌套函数调用基本上是不可能的,但是一种叫做“递归”的方法可以轻松达到这个极限。

4. 递归调用

在数学运算中,你会遇到需要计算多个连续自然数之和的情况。

例如,要计算1到n之间的自然数之和,需要先计算1加2的结果,在这个结果上加上3得到另一个结果,在新得到的结果上加上4,以此类推,直到你用1~(n-1)之间所有数字的和加上n。

在程序开发中,如果想要完成上述功能,就需要用到函数的递归调用。 所谓递归调用,就是函数内部调用自身的过程。

需要注意的是,递归必须需要一个结束条件,否则就会陷入无限递归的状态,调用永远不会结束。 接下来我们通过一个计算自然数之和的案例来了解递归调用。

案例2:

c语言调用语句是什么_c语言中调用语句_c语言中调用是什么意思

运行结果:

在案例 2 中,我们定义了一个 () 函数来计算 1 到 n 之间的自然数之和。

本例中的第九行代码相当于在()函数内部调用自身。 这就是函数的递归。 当n==1时整个递归过程结束。

由于函数的递归调用过程非常复杂,我们通过一个例子来分析一下整个调用过程。

c语言中调用语句_c语言中调用是什么意思_c语言调用语句是什么

这张图描述了递归调用的过程。 整个递归过程中,()函数被调用了4次。 每次调用时,n 的值都会减小。

当n的值为1时,所有递归调用的函数都会以倒序结束,并且所有返回值都会累加,最终结果为10。

- 结尾 -

c语言中调用是什么意思_c语言中调用语句_c语言调用语句是什么

最后,无论你是转行,无论你是初学者,还是高级,如果你想学习编程~

【值得关注】我的C/C++编程学习专栏:

有问必答、学习交流、技术讨论,还有海量的编程资源,零基础的视频也很棒~

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码