函函函函函函函函函函函数——two

简介: 函函函函函函函函函函函数——two

目录

🤪前言

🫥1. 函数的嵌套调用和链式访问

😶‍🌫️1.1 嵌套调用

😪1.2 链式访问

😬 2. 函数的声明和定义

🫡2.1 函数声明

🫢2.2 函数定义

😋3. 函数递归

😝3.1 递归的含义

🤩3.2 递归的必要条件

😗3.3 递归与迭代的区别

😍3.3 递归易出现的问题

😇3.4 解决方法

🤓总结


🤪前言

在本专栏中,上期文章我们对函数的定义,库函数,自定义函数,函数的形参和实参以及传值和传址调用进行了详细的分析,本期文章我们的讲解对象还是函数,我们接着上期的内容,我们往下讲,将对函数的嵌套定义和调用,声明和定义,函数的递归进行分析。各位看官姥爷快带上自己心爱的小板凳前来观看叭。

🫥1. 函数的嵌套调用和链式访问

函数和函数之间是可以根据实际需求来进行组合的,就是互相调用,往往一直大型的项目里就常有这种现象。

😶‍🌫️1.1 嵌套调用

一个函数里面镶嵌着另一个函数,这就叫做嵌套调用。但是,注意,函数可以嵌套调用,但是嵌套定义是万万不能的(要是你问为什么,那我只能告诉你就是这么规定的)

😪1.2 链式访问

链式访问,顾名思义就是像一条链条一样访问各个函数。链式访问中,是把一个函数的返回值作为另一个函数的参数使用。

😬 2. 函数的声明和定义

🫡2.1 函数声明

声明就是告诉编译器有一个函数叫什么,参数是什么,返回类型是什么,但是呢,它具体存不存在,声明就决定不了了。一般都要先声明函数在使用函数。声明一般放在头文件中(这样子的一般是分几个文件写的)

🫢2.2 函数定义

函数的定义就是指函数的具体实现,交代函数的作用、

😋3. 函数递归

😝3.1 递归的含义

程序调用自己就叫做递归,程序调用自身的编程技巧称为 递归 , 递归 通常是把一个大型的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归 策咯只需少量的程序就可描述出解题过程中所需要的多次重复计算,大大地减少了程序的代码量。 递归 的主要思考方式在于:把大事化小。

🤩3.2 递归的必要条件

递归有两个必要的条件,1存在限制条件,当满足这个限制条件后,递归不在进行下去。2每次递归后越来越接近这个限制条件。两个条件没满足一个就会陷入死递归中。

接下来举例子给大家清晰的认识递归:

😗3.3 递归与迭代的区别

在代码解决问题中,有许多时候是用递归的方式解决问题的,这只是因为它比非迭代的方式更加清晰,更容易想到。但是呢,递归的效率不高,用迭代的方式实现效率更高,虽然它的可读性差。它们两有有优点有缺点。递归就是代码简洁,清晰,容易想到,但是效率低,开销空间大。迭代反之,效率高,开销空间小,但是代码可读性差。

下面让我们通过举例来理解它们叭:

😍3.3 递归易出现的问题

这里还有一个问题,在调用fib函数的时候,如果参数比较大,那么它就是报错,说“stack overfliow”(栈溢出)。这是为什么呢因为系统分配给函数的栈空间是有限的,如果出现了死循环,这样就可能导致一直开辟栈空间,最终栈空间就会耗尽。

😇3.4 解决方法

第一种就是我们上面提到的将递归改为非递归,比如迭代。 第二种就是用static(它是什么,不会叭,我可是写过一篇专门说它的文章,快来看看吧http://t.csdn.cn/QCneJ)替代局部变量,这样不仅可以减少每次递归调用和返回产生和释放的开销,而且static还可以保存递归调用的中间状态,各个调用层都可以访问


🤓总结

讲到这里,我们已经将函数的内容全部讲完了,想必大家对函数应该有了一个清晰的认识了叭。下一期文章我们会对数组进行讲解,大家敬请期待叭!

目录
相关文章
|
1月前
函数
一个源程序由多个函数组成。 C程序的执行从main()函数开始; 所有函数都是平行的; 函数分类;可以分为标准函数和自定义函数,还可以分为有参函数和无参函数。
|
7月前
|
存储 编译器 C++
|
7月前
|
算法 编译器 C语言
函数—C(下)
函数—C(下)
59 0
|
数据库 索引
pginspect几个函数
pginspect几个函数
90 0
|
监控 程序员 C语言
|
自然语言处理 C++
C/C++ 中的 atol()、atoll() 和 atof() 函数
1.atol(): 此函数将作为参数传递给函数调用的 C 类型字符串转换为长整数。它解析 C 字符串 str 并将其内容解释为整数,该整数作为 long int 类型的值返回。该函数会丢弃字符串开头的空白字符,直到找到非空白字符。如果 C 字符串 str 中的非空白字符序列不是有效的整数,或者如果因为 str 为空或仅包含空白字符而不存在这样的序列,则不执行任何转换并返回零。
256 0
|
Java vr&ar
函数那些题 — P1
函数那些题 — P1
134 0
函数那些题 — P1
函数(二)
今天我们来学习函数(二)的相关内容,视频我已经传到b站上了,现在把链接发给大家,大家可以在b站上观看。关于函数我在为大家补充变量作用域的知识点。它分为两个部分:1.局部变量 2.全局变量
115 0
函数(二)
|
存储 数据采集 索引
再遇函数
简介:学习python的学习笔记 3,在B站《求知学堂》学习。
再遇函数