欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第--章━━函数的定义和调用优秀文档.ppt

    • 资源ID:91530456       资源大小:145.04KB        全文页数:38页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第--章━━函数的定义和调用优秀文档.ppt

    C+程序设计第3 章(1)函数的定义和调用1主要内容l 函数概述l 函数的定义l 函数的调用和返回l 函数的参数传递值传递l 函数的参数传递引用传递l 函数的原型声明l 全局变量及其作用域l 局部变量及其作用域l C+程序的内存布局l 标识符的作用域块作用域、文件作用域、函数原型作用域、函数作用域l 变量的存储类型和生存期l 函数的调用机制2函数概述l 关于C+函数:C+程序的结构化特点:就是整个程序由一个或多个函数组成,每个函数具有相对独立的功能,函数之间有明显的界面,程序整体具有清晰的模块结构,易于修改。C+函数有两大类:一类是系统预定义的,称为库函数或标准函数,这些库函数按照不同的功能进行分类,集中定义在不同的头文件中,用户只要在自己的程序中包含某个头文件,就可直接使用该头文件中定义的函数。另一类是用户自定义函数,用户可以根据需要将程序中某个具有相对独立功能的程序段定义为函数。C+程序的基本模块:就是函数,任何一个C+程序均由若干个函数组成,其中有且仅有一个主函数,它是程序执行的入口函数,VC+控制台编程是由用户定义的main()作为入口函数,Windows 编程是由编译器定义的WinMain()作为入口函数。3函数概述 C+函数之间是并列平等的关系,在程序中的定义位置任意,一个函数可以调用其它函数,也可以被其他函数所调用,但主函数只能调用其他函数,而不能被调用。函数定义的并列关系 函数调用的层次关系void f1()f1 的函数体 void f2()f2 的函数体 void main()main 的函数体 void f3()f3 的函数体 void f4()f4 的函数体 void f5()f5 的函数体 main()f1()f2()f3()f4()f6()4函数的定义l 函数的定义:格式:返回值类型 函数名(类型1 形参1,类型2 形参2,类型n 形参n)语句序列 说明:返回值类型可以是C+中任意基本数据类型、已定义的构造数据类型;若函数没有返回值,则返回值类型定义为 void 型;若函数返回值类型省略,表示返回值类型为 int 型。函数体函数头5函数的定义 函数名按标识符命名规则命名,其后括号内定义的是函数的形式参数;若该函数为无参函数,括号内的 void 通常省略不写,但括号不能省略!形式参数表列出所有形式参数的数据类型、参数名称;各参数即使类型相同,也必须分别进行类型说明;形参类型可以是C+中任意基本数据类型、已定义的构造数据类型。l 函数参数的作用:函数调用时,主调函数通过参数将数据传递给被调函数。l 函数返回值的作用:函数返回时,被调函数可将一个确定的值带回到主调函数。若函数有返回值,则 return 语句格式为:return 表达式;且 return 后面表达式值的类型必须与函数返回值类型相匹配!若函数无返回值,则返回值类型定义为void,且return 语句格式为:return;6函数的调用和返回l 函数的调用:格式:函数名(实参1,实参2,实参n)调用:就是控制从主调函数转去执行被调函数的函数体。调用时,系统要将实参值按位置传递给对应的形参,因此,一般情况下实参与形参在个数、排列顺序上都必须一一对应,且类型匹配。l 函数的返回:就是控制从被调函数返回到主调函数的调用点。返回时,即在被调函数中执行到 return 语句时,若有返回值带回,则先计算 return 语句后面表达式的值,并转换成所规定的返回值类型,此时系统会在内存中建立一个临时变量,用来存放该返回值,待主调函数中包含该调用式的表达式语句从该临时变量中取值后,系统便撤消该临时变量。7【例】(定义求三个实数中最大数的函数max()。)#include float max(float x,float y,float z)/要将三个实数传递给max()函数,需定义三个形参。float t=yz?y:z;return(xt?x:t);void main()float a,b,c;cout a b c;cout“最大数:”max(a,b,c)endl;运行:请输入三个实数:13 56-89 最大数:56main()函数调用max(13,56,-89)main()函数的后续语句函数max(13,56,-89)return 56主调函数被调函数8函数的参数传递l 形参与实参:函数定义时,写在函数头部参数表中的变量,称为形式参数(形参)。函数调用时,写在调用式参数表中的表达式、变量、常量,称为实在参数(实参)l 形参与实参的结合:编译时,并不为各函数的形参分配存储空间,只有在该函数被调用时,其形参才占用存储空间,并通过堆栈从主调函数中获得值,这个过程称为形参与实参的结合,一旦函数调用结束,该函数的形参就被撤销。l 函数的参数传递方式有三种:值传递 引用传递 地址传递9函数的参数传递值传递l 值传递:调用函数进行值传递时,调用式中对应的实参可以是常量、变量、表达式。先计算出各个实参表达式的值,并将值赋给对应的形参变量,其过程就是赋值,因此,要求实参值的类型与形参变量类型符合赋值兼容。由于值传递就是赋值传递,因此是单向传递,即实参值传递给形参变量后,若形参变量的值发生变化不会影响到对应的实参变量。【例】#include void swap(int a,int b)int t=a;a=b;b=t;void main()int x,y;cout x y;cout“调用前:x=”x“ty=”y endl;swap(x,y);cout“调用后:x=”x“ty=”y endl;运行:请输入两个整数:58 97 调用前:x=56 y=97调用后:x=56 y=9710【例】#include int maxi(int a,int b)return ab?a:b;float maxf(float a,float b)return ab?a:b;void main(void)float x=3.4,y=5.6;char c1=A,c2=B;int i=20,j=30;cout maxi(x,y)t;cout maxf(x,y)t;cout maxi(c1,c2)t;cout maxf(c1,c2)t;cout maxi(i+j,45+y)t;cout maxf(i+j,45+y)endl;运行:float x=3.4 int a=3float y=5.6 int b=5float x=3.4 float a=3.4float y=5.6 float b=5.6char c1=A int a=65char c2=B int b=66char c1=A float a=65char c2=B float b=66表达式 i+j 值50,int 型 int a=50表达式 45+y 值50.6,float 型 int b=50表达式 i+j 值50,int 型 float a=50表达式 45+y 值50.6,float 型 float b=50.61 1函数的参数传递引用传递l 引用类型:是C+中一种特殊的数据类型,定义引用类型变量,其本质是给一个已定义的变量起一个别名,系统并不为引用类型变量分配内存空间,引用类型变量与其相关联的变量使用的是同一个内存空间。l 引用类型变量的定义:格式:&=功能:定义一个引用类型变量,必须同时对其进行初始化,使之与一个已定义过的同类型变量相关联,即给该已定义过的变量起一个别名。【例】#include void main()int x=5;int&x1=x;int x2=x;x1+=2;cout“x=”x“tx1=”x1“tx2=”x2 endl;57xx15x2运行:x=7 x1=7 x2=512函数的参数传递引用传递l 引用类型变量可以作为函数的形参,以实现参数的引用传递。【例】void swap(int&a,int&b)int t=a;a=b;b=t;l 引用传递:调用函数时,系统对引用类型的形参是不分配存储空间的,其本质是给对应的实参变量起一个别名。进行引用传递时,调用式中对应的实参只能是变量。引用传递时传递的是变量名,引用类型的形参变量与其相关联的实参变量使用的是同一个存储空间,若引用类型的形参变量的值发生变化,其相关联的实参变量的值也就随之变化,因此是双向传递。13【例】(值传递)#include void swap(int a,int b)int t=a;a=b;b=t;void main()int x=5,y=10;cout“调用前:x=”x“ty=”y endl;swap(x,y);cout“调用后:x=”x“ty=”y endl;【例】(引用传递)#include void swap(int&a,int&b)int t=a;a=b;b=t;void main()int x=5,y=10;cout“调用前:x=”x“ty=”y endl;swap(x,y);cout“调用后:x=”x“ty=”y endl;运行:调用前:x=5 y=10调用后:x=10 y=5引用传递:main():swap():x a 10 y b 5510运行:调用前:x=5 y=10调用后:x=5 y=10值传递:main():swap():x a 10y b 551051014函数的原型声明l 函数的原型声明:C+中,把函数的定义部分称为函数的定义性声明,而把对函数的引用性声明称为函数的原型声明。当函数定义在前、调用在后时,可直接调用;当函数调用在前、定义在后时,在函数被调用前,必须对被调函数作原型声明,函数原型声明可放在主调函数中,也可放在所有函数之外。函数原型声明的目的是告知编译系统,该函数的返回值类型、参数个数、顺序、各参数的类型,以便编译系统对其后该函数调用式是否有效进行语法检查。l 函数原型声明的格式:格式1:函数头+末尾加分号 返回值类型 函数名(类型1 形参1,类型2 形参2,类型n 形参n);格式2:函数头(去掉形参变量名)+末尾加分号 返回值类型 函数名(类型1,类型2,类型n);15【例】(输入一个8 位二进制数,将其转换为十进制数输出。例:若输入11010001,110100012=1(27)+1(26)+0(25)+1(24)+0(23)+0(22)+0(21)+1(20)=20910,输出209。)#include void main()double power(double,int);/power()函数的引用性声明,即原型声明 int value=0,k;char c;cout=0;i-)cin c;if(c=1)value+=(int)power(2,i);/调用power()函数 cout“十进制数:”value endl;double power(double x,int n)/power()函数的定义性声明 double t=1;while(n-)t*=x;return t;运行:请输入一个8 位二进制数:11010001 十进制数:20916

    注意事项

    本文(第--章━━函数的定义和调用优秀文档.ppt)为本站会员(教****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开