还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《函数与预处理》PPT课件•函数的基本概念•函数的参数传递目•函数的调用过程录•函数的重载和覆盖•函数的递归调用•函数的预处理指令CONTENTS01函数的基本概念CHAPTER函数的定义函数是数学中一个非常基本和重要的概念,它是一个从输入到输出的映射关系在编程中,函数也扮演着类似的角色,它接受输入参数,执行一系列操作,并返回结果函数的定义通常包括输入参数、函数体和返回值输入参数定义了函数所接受的数据,函数体包含实现特定功能的代码,而返回值则是函数执行后的结果函数的分类•根据不同的分类标准,函数可以分为多种类型常见的分类方式包括按功能、按参数个数和按返回值类型等例如,按功能可以分为数学函数、计算函数、转换函数等;按参数个数可以分为一元函数、二元函数等;按返回值类型可以分为有返回值函数和无返回值函数等函数的特性•函数的特性包括确定性、可重用性、可预测性和封装性确定性是指函数在相同的输入下应始终产生相同的结果;可重用性是指函数可以在不同的程序和场景中重复使用;可预测性是指函数的输出结果应与预期一致;封装性是指函数将相关的数据和操作封装在一起,以方便管理和使用02函数的参数传递CHAPTER值传递值传递是通过拷贝传递参数的方值传递适用于小型数据类型,如值传递在函数调用时,需要将实式,将实参的值复制给形参,对基本数据类型和结构体等,可以参的值复制给形参,如果参数较形参的修改不会影响实参的值提高程序的效率和安全性大,可能会导致性能问题引用传递引用传递是通过引用传递参数的方式,将实参的引用地址传递给形参,对形参的修改会直接影响实参的值引用传递适用于大型数据类型,如数组、字符串和自定义类型等,可以提高程序的效率和性能引用传递需要注意参数的生命周期和作用域,以避免出现悬挂引用和野指针等问题指针传递指针传递是通过指针传递参数指针传递适用于动态分配内存指针传递需要注意指针的初始的方式,将实参的指针地址传的情况,如动态数组和链表等,化和内存管理,以避免出现空递给形参,对形参的修改会直可以通过指针操作内存地址来指针和内存泄漏等问题接影响实参的值修改数据03函数的调用过程CHAPTER函数调用的方式010203函数名函数指针函数对象这是最常用的调用方式,通过函数指针来调用函数,通过对象的方法来调用函通过函数名后跟括号来调可以更加灵活地控制函数数,类似于类的方法调用用函数的调用函数调用的过程函数执行函数在调用时开始执行,执行过程参数传递中可以访问全局变量和静态变量在函数调用时,需要将参数传递给函数,可以是按值传递或按引用传递返回值处理函数执行完毕后,需要返回一个值给调用者,可以是任何类型的数据函数调用的返回值返回值类型返回值处理空返回值函数声明时需要指定返回调用者需要处理函数的返如果函数没有返回值,则值的类型,可以是任何基回值,根据返回值的类型需要在函数声明时指定本数据类型或自定义类型进行相应的操作void作为返回值类型04函数的重载和覆盖CHAPTER函数重载的概念函数重载是指在同一作用域内,可以重载函数可以提高代码的可读性和可定义多个同名函数,但它们的参数类维护性,减少函数名的数量,方便代型、个数或顺序不同码的编写和管理重载函数允许根据传递的参数类型、个数或顺序的不同,执行不同的操作函数覆盖的概念函数覆盖是指子类中定义了一个当通过子类的对象调用该函数时,覆盖函数允许子类改变或扩展父与父类中同名的函数将执行子类中的函数,而不是父类中已有函数的行为类中的函数重载和覆盖的区别函数重载是根据参数类型、个数或顺序的不同来重载函数是在同一个作用域内定义多个同名函数,区分同名函数,而函数覆盖则是根据子类和父类而覆盖函数是在子类中定义与父类中同名的函数中同名函数的定义来区分重载函数可以改变返回类型,而覆盖函数必须与重载函数可以改变异常列表,而覆盖函数不能抛父类中的函数具有相同的返回类型出新的检查性异常或者比被覆盖的函数更广的检查性异常,但可以抛出更少、更有限的异常,或者不抛出异常05函数的递归调用CHAPTER递归调用的概念它通常用于解决需要重复执行相同或类似任务的问题,通过将问题分解为更小的子问题来逐步求解递归调用是一种编程技术,函数直接或间接地调用自递归调用通常有一个基本情况和一个或多个递归情况身来解决问题组成递归调用的过程
1.确定基本情况这是递归终止的情况,不需要再调用自身
2.编写递归情况这是函数调用自身的部分,将问题分解为更小的子问题
3.返回结果从递归调用返回结果,并向上层递归调用返回结果,直到达到基本情况递归调用的注意事项
1.避免无限递归01确保有一个明确的终止条件,避免无限循环
2.注意栈溢出02递归调用会占用大量内存,特别是深度较大的递归调用,可能会导致栈溢出
3.优化递归03对于重复计算的问题,可以考虑使用动态规划或其他技术来避免重复计算,提高效率06函数的预处理指令CHAPTERinclude指令功能格式示例用于包含指定的头文件当程序#include filename#include stdio.h或#include用于包含标准输入中使用了某个库中的函数或定义filename输出库的头文件时,需要包含该库的头文件,以便编译器能够识别和编译define指令功能格式用于定义常量或宏常量是在程序运行期#define identifierreplacement间不能改变的值,而宏是用名称代替一系列命令或表达式,在编译时进行替换示例注意事项#define PI
3.14159预处理器只进行文本替换,不进行语法或定义了一个名为PI的常量,其值为
3.14159语义检查,因此需要谨慎使用,避免产生副作用或错误THANKS感谢您的观看。
个人认证
优秀文档
获得点赞 0