第03章函数.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第03章函数.ppt》由会员分享,可在线阅读,更多相关《第03章函数.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第03章函数章函数本章内容安排本章内容安排&函数的概念函数的概念&函数的声明与定义函数的声明与定义&函数中的变量函数中的变量&函数返回值函数返回值&默认参数默认参数&函数重载函数重载&内联函数内联函数2什么是函数什么是函数&函数是函数是C+C+程序的基本构成单元,函数对数据执程序的基本构成单元,函数对数据执行操作并返回处理结果。行操作并返回处理结果。3什么是函数什么是函数?&每个程序中有且仅有每个程序中有且仅有1 1个个mainmain函数,其它函数可函数,其它函数可根据需要定义。根据需要定义。程序运行时,系统会调用程序运行时,系统会调用mainmain函数,函数,mainmain函数执行结
2、函数执行结束后整个程序结束。束后整个程序结束。mainmain函数可调用其它函数,函数之间可以相互调用。函数可调用其它函数,函数之间可以相互调用。每个函数都有名称,可用于调用它。每个函数都有名称,可用于调用它。函数被调用后,执行其中的语句,语句执行完或遇到函数被调用后,执行其中的语句,语句执行完或遇到returnreturn后返回到调用该函数的地方继续执行。后返回到调用该函数的地方继续执行。4本章内容安排本章内容安排&函数的概念函数的概念&函数的声明与定义函数的声明与定义&函数中的变量函数中的变量&函数返回值函数返回值&默认参数默认参数&函数重载函数重载&内联函数内联函数5函数的声明函数的声明
3、&函数在使用前必须被声明。函数的声明将函数的函数在使用前必须被声明。函数的声明将函数的名称、返回的数据类型、函数参数类型告知编译器。名称、返回的数据类型、函数参数类型告知编译器。int findArea(int length,int width);int findArea(int length,int width);函数的返回类型:函数的返回类型:intint 函数名称:函数名称:findAreafindArea 函数的参数列表:类型为函数的参数列表:类型为intint的的2 2个参数个参数lengthlength和和widthwidthp函数的声明是函数的声明是1 1条语句,要以分号结尾。声
4、明也叫原型,不条语句,要以分号结尾。声明也叫原型,不 包含任何代码。包含任何代码。p函数可返回任意函数可返回任意C+C+数据类型。如果函数不返回值,将返回数据类型。如果函数不返回值,将返回 类型写为类型写为voidvoid,而不是空缺。,而不是空缺。p函数名称、参数及其排列顺序构成了函数的签名,函数签名函数名称、参数及其排列顺序构成了函数的签名,函数签名 唯一地标识了一个特定的函数。唯一地标识了一个特定的函数。6函数的定函数的定义&函数的定义给出函数的具体行为,函数定义包括函数的定义给出函数的具体行为,函数定义包括函数头和函数体,函数体由若干语句构成,放在函数头和函数体,函数体由若干语句构成,
5、放在 内。内。int findArea(int l,int w)int findArea(int l,int w)return l*w;return l*w;p函数头与函数原型类似,但结尾不能加分号。函数头与函数原型类似,但结尾不能加分号。p如果函数返回一个值,函数体内至少包含如果函数返回一个值,函数体内至少包含1 1条条returnreturn语句,语句,return return语句可返回类型匹配的常量、变量、表达式结果。语句可返回类型匹配的常量、变量、表达式结果。7声明和定声明和定义的匹配的匹配&函数的声明和函数的定义需要匹配,否则无法通函数的声明和函数的定义需要匹配,否则无法通过编译。
6、匹配时检查返回值类型、函数名称、参数过编译。匹配时检查返回值类型、函数名称、参数类型及顺序,但不用匹配参数名称。类型及顺序,但不用匹配参数名称。int findArea(int,int);int findArea(int,int);p函数声明可以只给出参数类型,但语义不够清晰,声明和定函数声明可以只给出参数类型,但语义不够清晰,声明和定 义处的参数名称可以不同,编译器忽略声明处的参数名称。义处的参数名称可以不同,编译器忽略声明处的参数名称。p函数名应符合标识符规则,还要养成良好的习惯,名字应能函数名应符合标识符规则,还要养成良好的习惯,名字应能 体现函数的功能和目的,名字中间不能有空格。体现函
7、数的功能和目的,名字中间不能有空格。8函数的函数的调用用#include#include int findArea(int length,int width);int findArea(int length,int width);int main()int main()int length,width;int length,width;int area;int area;std:cout“How wide is your yard?“;std:coutwidth;std:cinwidth;std:cout“How long is your yard?“;std:coutlength;std:c
8、inlength;9函数的函数的调用用int main()int main()area=findArea(length,width);area=findArea(length,width);std:cout“Your yard is“area;std:cout“Your yard is“area;std:cout“square feet.n”;std:cout“square feet.n”;return 0;return 0;p调用函数时传递的参数称为实参,函数体内的参数称为形参,调用函数时传递的参数称为实参,函数体内的参数称为形参,形参用于接收传入的实参值。形参用于接收传入的实参值。p如果将
9、函数定义放在如果将函数定义放在mainmain函数之前,可以不写函数声明,但函数之前,可以不写函数声明,但 不是一种良好的习惯。不是一种良好的习惯。10本章内容安排本章内容安排&函数的概念函数的概念&函数的声明与定义函数的声明与定义&函数中的变量函数中的变量&函数返回值函数返回值&默认参数默认参数&函数重载函数重载&内联函数内联函数11局部局部变量量&函数体内创建的变量称为函数体内创建的变量称为局部变量局部变量,局部变量只,局部变量只存在于函数内部,调用函数时局部变量被创建,函存在于函数内部,调用函数时局部变量被创建,函数返回后,所有局部变量被销毁,不能再被访问。数返回后,所有局部变量被销毁,
10、不能再被访问。&函数的函数的形参形参(接收并保存实参值)也是函数的局(接收并保存实参值)也是函数的局部变量。部变量。12局部局部变量的使用量的使用#include#include float convert(float);float convert(float);int main()int main()float fahrenheit,celsius;float fahrenheit,celsius;std:coutEnter the temperature in Fahrenheit:;std:coutfahrenheit;std:cinfahrenheit;celsius=convert(
11、fahrenheit);celsius=convert(fahrenheit);std:coutTemperature in Celsius:“std:coutTemperature in Celsius:“celsiusn;celsiusn;return 0;return 0;13局部局部变量的使用量的使用float convert(float convert(float fahreheit float fahreheit)float celsius;float celsius;celsius=(fahreheit-32)*5)/9;celsius=(fahreheit-32)*5)/9;r
12、eturn celsius;return celsius;p尽管实参变量和形参变量的名字都是尽管实参变量和形参变量的名字都是fahreheitfahreheit,它们是不,它们是不 同的变量,同的变量,mainmain函数的中函数的中fahreheitfahreheit将值复制给将值复制给convertconvert 函数中的函数中的fahreheitfahreheit局部变量。局部变量。p变量作用域:变量存在的范围,块语句中声明的变量只能变量作用域:变量存在的范围,块语句中声明的变量只能 存在于当前块。存在于当前块。14全局全局变量量&C+C+中允许在函数外面定义变量,称为中允许在函数外面定
13、义变量,称为全局变量全局变量,全局变量在程序的任何地方都可使用。全局变量在程序的任何地方都可使用。&全局变量的作用域为全局,可以在程序的任何函全局变量的作用域为全局,可以在程序的任何函数中被访问。数中被访问。15局部局部变量的使用量的使用#include#include void convert();void convert();float fahrenheit,celsius;float fahrenheit,celsius;int main()int main()std:coutEnter the temperature in Fahrenheit:;std:coutfahrenheit;
14、std:cinfahrenheit;convert();convert();std:coutTemperature in Celsius:“std:coutTemperature in Celsius:“celsiusn;celsiusn;return 0;return 0;16局部局部变量的使用量的使用void convert()void convert()celsius=(fahreheit-32)*5)/9;celsius=(fahreheit-32)*5)/9;p在函数中直接操作全局变量,不用传递参数或返回值,表面在函数中直接操作全局变量,不用传递参数或返回值,表面 上方便省事。但在复
15、杂程序中,全局变量会导致程序错误上方便省事。但在复杂程序中,全局变量会导致程序错误 难以修改(任意一条语句都有可能修改全局变量的值)难以修改(任意一条语句都有可能修改全局变量的值)p良好编程习惯:应避免使用全局变量!良好编程习惯:应避免使用全局变量!17函数参数函数参数&函数通过函数通过参数(形参)参数(形参)接收信息,函数可以包含接收信息,函数可以包含多个参数,多个参数之间用逗号分割。多个参数,多个参数之间用逗号分割。&函数调用时,函数调用时,提供值(实参)提供值(实参)可以是常量、变量、可以是常量、变量、表达式、其它函数调用的返回值。表达式、其它函数调用的返回值。&函数的形参属于函数的局部
16、变量,函数返回后局函数的形参属于函数的局部变量,函数返回后局部变量就被销毁,无法再访问了。部变量就被销毁,无法再访问了。18函数的参数函数的参数传递#include#include int main()int main()int x=5,y=4;int x=5,y=4;std:cout“sum:“std:cout“sum:“sum(x,y);sum(x,y);return 0;return 0;int sum(int a,int b)int sum(int a,int b)return a+b;return a+b;54mainmainsumsum54x xy ya ab b不成功的数据交不成
17、功的数据交换int x=4,y=13;int x=4,y=13;swap(swap(x,y x,y););void swap(void swap(int x,int y int x,int y)int temp=x;int temp=x;x=y;x=y;y=temp;y=temp;pswapswap函数的形参函数的形参x x、y y,和调用处,和调用处 的的x x、y y虽然同名,但属于不同的虽然同名,但属于不同的 的变量。的变量。pswapswap函数内部,对自己的局部变函数内部,对自己的局部变 量量x x和和y y进行交换,函数返回后,进行交换,函数返回后,调用处的调用处的x x和和y y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03 函数
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内