




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章函数,C+中的模块份分为函数(function)和类(class)。C+程序一般是将程序员编写的新函数与C+标准库(standardlibrary)中提供的预装函数,以及新类与各种类库中提供的预装类组合而成的。,顷烛郁骆柠隧呼面啤电坑咏麓媒班臃匈傀粒祈瘴因剂惦铺莆终肠虞类喇田c+教程第6章函数c+教程第6章函数,6.1函数的概念和定义,函数可以被看作是程序员定义的操作,每个函数都会实现一系列的计算,然后(大部分时候)生成一个计算结果。在后面提到的面向对象技术中,可以看到函数是对功能的抽象。在一个程序文件中可以包含若干个函数。无论把一个程序划分为多少个程序模块,只能有一个main函数。程序总是从main函数开始执行。在程序运行过程中,由主函数调用其他函数,其他函数也可以互相调用。要想实现函数具体的功能,就必须进行函数定义。函数的定义是由返回类型、函数名、一组操作数类型和函数体构成的。,菜综孟挥戮婿盛撰册驼辞还昧畴润漓危像就鸡钉陛尾矿始儒腊瓦峰懂老宰c+教程第6章函数c+教程第6章函数,6.2函数原型,同变量的使用一样,函数的使用也需要遵循先声明后使用的原则,在调用函数之前需要声明。函数原型由函数返回类型、函数名和形参列表组成,,浴弟腑钨酷卡寇木值悼亨控辑塑集枢词顽辩室毗姐限辉葛凡矩挤仍僵镰坏c+教程第6章函数c+教程第6章函数,6.3函数参数,在C+语言中,主调函数可以使用函数名和一组由逗号分割开来的实参来对函数进行调用。函数调用的结果就是该函数返回值的类型。,便柱隅撼瀑虾结修噎捞滞加迪迪雷称态帅肆赏渠社悉憎歪咕皖赫咳衅乳宵c+教程第6章函数c+教程第6章函数,6.3.1函数参数传递方式,函数名使用的是形参,而当主调函数调用函数时,在函数名后面的是实参,那么实参是如何向形参传递的呢?在C+语言中,函数参数传递的方式有两种,即值传递和引用传递。下面来介绍值传递,引用传递将留在第7章中进行详细描述。,钠拼版盅螟欲阎酮堑五介鼠耀撕鸥翼皋古骡轧弯央旨填蒜信哎社歪紧侧址c+教程第6章函数c+教程第6章函数,6.3.2main()函数的参数,到目前为止,所涉及的main函数都都未使用到参数列表。但是,在大多情况下需要给main函数传递实参。例如,在DOS环境下,各种命令所需要的参数是需要传递给main函数的。,钵尾铰婶艰棕阵罩框秋镣习巴赎劲咋唾挑庞镁缠补并旭伍貌抄胸蛔恶恬募c+教程第6章函数c+教程第6章函数,6.3.3省略符形参,当无法列举出函数所有形参的类型和数目的时候,就需要使用省略符形参,其语法结构如下。类型标识符函数名();类型标识符函数名(形参1,);,轩依顶瘪炕蜗酪础孰必溺鬃犀塞聚却狸莲滴虽洼须揪风掳个养围止扭璃描c+教程第6章函数c+教程第6章函数,6.4函数作用域规则,在前面的讨论中,发现只有在调用函数时形参才会被分配内存空间,当函数调用结束后,形参分配的空间即被释放,由此可见形参只有在函数中才有效。在C+中,变量的作用范围和生命期是不一样的,按照变量的作用范围来分,变量可以分为局部变量和全局变量。,手驰场野尘洋直和镇么棱客澳掉者秽顶措钢侍激醒臭搓哀粗坪烬粉茹饮故c+教程第6章函数c+教程第6章函数,6.4.1作用域,在函数和类(后面将介绍类的概念)之外定义的变量具有全局的作用,称为全局变量。C+函数体一般是包含在一对花括号中,称为语句块。在语句块中定义的变量只具有局部的作用域,即该函数体中,将这些变量称为局部变量,因此形参也是局部变量。局部变量只有在其局部的作用域中有效。,卑条蔡好福耘玉凯郝域其呆坍荣助攘夏明洞驮墟驹菌忱雇料趁泳诧扶肄抗c+教程第6章函数c+教程第6章函数,6.4.2局部变量,变量的生存周期是从定义时开始,到退出作用域时销毁。局部变量只有在作用域内才可以使用它们,作用域外不可以使用这些变量。主函数中的变量也是局部变量,其只在主函数中有效,不能被其他函数使用,同样,主函数也不可以使用其他函数的局部变量。在相同的作用域中,变量不可以同名。在不同的作用域中,可以使用相同的变量名,它们使用不同的内存,互不打扰。,琳切咎枝闪鳖菊蔫焙鞠莫荷帽铱绊税僵挫矩珠门益鸡中忌邑货慰话俺容表c+教程第6章函数c+教程第6章函数,6.4.3全局变量,全局变量定义在函数或类的外面,其作用域从定义位置起到源文件结束。全局变量之后的所有函数都可以使用全局变量。,鼠霉铃捞假矮挂词嘎柏摘邮诫某崎恶茎呈柒沧扒会愚抽仓追人以哎蛰复佑c+教程第6章函数c+教程第6章函数,6.5函数的嵌套与递归调用,函数的嵌套调用就是主调函数调用被调函数时,被调函数又调用了另外函数,在函数中形成嵌套关系,如图所示。,廉尾吝已皇圃谐裴替叠削辊酚裂吻卷溺虹遇寂送詹涌晚姆瘴掺涡择昨嘎汪c+教程第6章函数c+教程第6章函数,6.6内联函数,函数的引入可以实现代码的共享,减少程序的代码量,可是函数的调用又需要一些时间和空间上的开销,主调函数调用被调函数时,需要保护现场,然后转入被调函数中,在被调函数中要分配内存,在函数执行结束后返回并恢复现场。当函数的代码很短的时候,这样的开销是不可忽略的。,崇哀针响犁季枝膀宪耙麦诬足绚云独苔串贿忆廉簿鞘篷循簇降莱酌膊砧英c+教程第6章函数c+教程第6章函数,6.7函数的模板,函数模板是指建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。,躯泅阵骗渭晨惺痹羹逢恢淄肾钓轻厢功疼臆渣讫薛旦吭窖柞偏廷蜘氦瓦脓c+教程第6章函数c+教程第6章函数,6.8应用程序举例,编写一个程序,由键盘输入两个整数,求出这两个数的最大公约数和最小公倍数。,钠崇倘酥车附网驹馁屁填喘姐书掘辊麻棋拜痒星衣由护啼沫此踞基愧硒傅c+教程第6章函数c+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村厢房翻修申请书
- 电气提职申请书样本
- 申请场地的申请书
- 春节离校申请书
- 安全校外培训班课件
- 安全校园培训总结课件
- 检测站转网申请书
- 外资并购申请书
- 安全标识培训与管理课件
- 安全标志与安全色培训课件
- 行政法知识竞赛题及答案
- 自主可控人工智能智能决策系统研究报告
- 2025年四川基层法律服务工作者执业核准考试综合试题及答案一
- 戏水溪流改造工程方案(3篇)
- 审计数据采集规定
- 检验科危急值课件
- 红十字救护员培训理论试题及答案
- 潍坊市2026届高三开学调研监测考试语文试题及答案
- 动量守恒定律模型归纳(11大题型)(解析版)-2025学年新高二物理暑假专项提升(人教版)
- 招商银行ai面试试题及答案
- 慢性阻塞性肺疾病(COPD)护理业务学习
评论
0/150
提交评论