- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
《函数与预处理》PPT课件
目录CONTENTS函数的基本概念函数的参数传递函数的调用过程函数的重载和覆盖函数的递归调用函数的预处理指令
01CHAPTER函数的基本概念
函数是数学中一个非常基本和重要的概念,它是一个从输入到输出的映射关系。在编程中,函数也扮演着类似的角色,它接受输入参数,执行一系列操作,并返回结果。函数的定义通常包括输入参数、函数体和返回值。输入参数定义了函数所接受的数据,函数体包含实现特定功能的代码,而返回值则是函数执行后的结果。函数的定义
根据不同的分类标准,函数可以分为多种类型。常见的分类方式包括按功能、按参数个数和按返回值类型等。例如,按功能可以分为数学函数、计算函数、转换函数等;按参数个数可以分为一元函数、二元函数等;按返回值类型可以分为有返回值函数和无返回值函数等。函数的分类
函数的特性包括:确定性、可重用性、可预测性和封装性。确定性是指函数在相同的输入下应始终产生相同的结果;可重用性是指函数可以在不同的程序和场景中重复使用;可预测性是指函数的输出结果应与预期一致;封装性是指函数将相关的数据和操作封装在一起,以方便管理和使用。函数的特性
02CHAPTER函数的参数传递
值传递适用于小型数据类型,如基本数据类型和结构体等,可以提高程序的效率和安全性。值传递在函数调用时,需要将实参的值复制给形参,如果参数较大,可能会导致性能问题。值传递是通过拷贝传递参数的方式,将实参的值复制给形参,对形参的修改不会影响实参的值。值传递
引用传递是通过引用传递参数的方式,将实参的引用地址传递给形参,对形参的修改会直接影响实参的值。引用传递适用于大型数据类型,如数组、字符串和自定义类型等,可以提高程序的效率和性能。引用传递需要注意参数的生命周期和作用域,以避免出现悬挂引用和野指针等问题。引用传递
指针传递是通过指针传递参数的方式,将实参的指针地址传递给形参,对形参的修改会直接影响实参的值。指针传递适用于动态分配内存的情况,如动态数组和链表等,可以通过指针操作内存地址来修改数据。指针传递需要注意指针的初始化和内存管理,以避免出现空指针和内存泄漏等问题。指针传递
03CHAPTER函数的调用过程
这是最常用的调用方式,通过函数名后跟括号来调用函数。函数名()函数指针函数对象通过函数指针来调用函数,可以更加灵活地控制函数的调用。通过对象的方法来调用函数,类似于类的方法调用。030201函数调用的方式
在函数调用时,需要将参数传递给函数,可以是按值传递或按引用传递。参数传递函数在调用时开始执行,执行过程中可以访问全局变量和静态变量。函数执行函数执行完毕后,需要返回一个值给调用者,可以是任何类型的数据。返回值处理函数调用的过程
函数声明时需要指定返回值的类型,可以是任何基本数据类型或自定义类型。返回值类型调用者需要处理函数的返回值,根据返回值的类型进行相应的操作。返回值处理如果函数没有返回值,则需要在函数声明时指定void作为返回值类型。空返回值函数调用的返回值
04CHAPTER函数的重载和覆盖
函数重载的概念函数重载是指在同一作用域内,可以定义多个同名函数,但它们的参数类型、个数或顺序不同。重载函数允许根据传递的参数类型、个数或顺序的不同,执行不同的操作。重载函数可以提高代码的可读性和可维护性,减少函数名的数量,方便代码的编写和管理。
函数覆盖是指子类中定义了一个与父类中同名的函数。当通过子类的对象调用该函数时,将执行子类中的函数,而不是父类中的函数。覆盖函数允许子类改变或扩展父类中已有函数的行为。函数覆盖的概念
函数重载是根据参数类型、个数或顺序的不同来区分同名函数,而函数覆盖则是根据子类和父类中同名函数的定义来区分。重载函数可以改变返回类型,而覆盖函数必须与父类中的函数具有相同的返回类型。重载函数可以改变异常列表,而覆盖函数不能抛出新的检查性异常或者比被覆盖的函数更广的检查性异常,但可以抛出更少、更有限的异常,或者不抛出异常。重载函数是在同一个作用域内定义多个同名函数,而覆盖函数是在子类中定义与父类中同名的函数。重载和覆盖的区别
05CHAPTER函数的递归调用
递归调用是一种编程技术,函数直接或间接地调用自身来解决问题。递归调用通常有一个基本情况和一个或多个递归情况组成。它通常用于解决需要重复执行相同或类似任务的问题,通过将问题分解为更小的子问题来逐步求解。递归调用的概念
2.编写递归情况这是函数调用自身的部分,将问题分解为更小的子问题。3.返回结果从递归调用返回结果,并向上层递归调用返回结果,直到达到基本情况。1.确定基本情况这是递归终止的情况,不需要再调用自身。递归调用的过程
033.优化递归对于重复计算的问题,可以考虑使用动态规划或其他技术来避免重复计算,提高效率。011.避免无限递归确保有一
文档评论(0)