- 3
- 0
- 约3.07万字
- 约 134页
- 2018-02-11 发布于江西
- 举报
C及Windows可视化程序设计第4章
第4章 函数 4.1 函数基础知识 4.2 函数参数的传递方式 4.3 深入讨论函数返回值 4.4 函数指针 4.5 内联函数 4.6 函数重载 4.7 函数模板 4.8 解题算法知识 实验 习题 C++语言的模块设计离不开函数,函数设计更离不开参数。 掌握函数设计和调用的正确方法,是程序设计的基本功。 正确设计函数原型和参数类型,不仅能保证函数的正确性,而且能提高程序设计的效率。 本章除介绍函数调用、递归调用以及函数调用中的参数替换和返回值等问题之外,还将结合软件编程技术的发展,讨论函数指针、内联函数、函数重载、函数模板及算法知识等。 4.1 函数基础知识 在提出结构化程序设计之前,对软件发展影响最大的是子程序。结构化程序设计要求将任务细化到具体的模块中去,并保证各个模块任务独立,这一般借助子程序实现。 在C++语言中,子程序相当于函数。一般来讲,面向过程的C++源程序是由若干个函数组成的。运行时,程序从主函数main()开始执行,到main()的终止行结束。其他函数由main()或别的函数或自身调用后组成可执行程序。 在面向对象程序设计中,成员函数也是函数,只是它们的类型及其返回值更复杂些。 4.1.1 函数基本要素 1. 函数值和return语句 一般情况下,函数必须返回与函数声明相一致的值作为函数的值。 函数返回使用如下形式实现: return (表达式); 称return为返回语句。这里的表达式的值就是要返回的函数值。表达式两边的圆括号可有可无。 return语句在一个函数里可以多次使用,但返回值的类型必须一致且与函数的类型说明一致。 当函数不需要带值返回时,将函数直接定义为void类型,最为方便。这样就不必在函数体内使用return语句。实际上,最后一个大括号“}”有return语句的作用(函数末尾隐含有一个return语句)。 若函数不带值返回,实际上并不是不返回什么值,而是返回一个不定值。因为不考虑使用,所以尽管返回的是不定值,也就没有多大关系了。 也可以在函数体内使用不带表达式的return语句,即 return; 【例4.1】 作为认识返回值的练习,写一个具有两个参数的函数max,比较这两个参数的大小,并把大者作为函数的返回值。 下面的主函数调用max函数,执行该程序,x的值就等于a、b中大的一个。为了分析方便,使用注释为程序语句编号。 #includeiostream //1 using namespace std; //2 double max(double,double); //3 void main(){ //4 double a=2.5,b=3.39,x; //5 x=max(a,b); //6 cout″x=″xendl; //7 } //8 double max(double m1,double m2) { //9 if(m1m2)return m1; //10 else return m2; //11 } //12 2. 函数原型声明 第3行是函数max的原型声明,编译系统在编译到第6行时,会检查max的参数及返回值类型是否与函数声明一致。编译到函数的定义语句第9行时,还将检查max的定义是否与事先声明的一致。如果发生不一致的情况,编译系统就要给出警告。 应养成将所有函数集中进行函数原型声明的习惯。一般可以声明在头文件中,或者在主函数之前。 3. 工作过程说明 ① 这个程序是由两个函数,即主函数main和函数max组成的,并且main函数调用max函数(见第6行)。 ② 被调用函数max里的参数m1和m2是形参(见第9行)。在调用max函数时,形参要被实参替换,如第6行所示,形参m1和m2被实参a和b替换。实参不能变化,如第5行所示,a、b分别被赋值为2.5和3.39。 ③ 在main函数中调用max函数(即执行第6行)时,实际是执行9~12行的内
您可能关注的文档
- bm02材料基本性质.ppt
- BNMT薪资福利制度.ppt
- BMC模式论坛.ppt
- BOG压缩机可靠性分析与维修策略优化-GDLNG陈经锋.ppt
- BOM培训教程80.ppt
- BOM管理与工变管理 1.ppt
- BOM经典培训讲义.ppt
- Book I听力.ppt
- Book+introductionⅠ.ppt
- Book4Unit_01_语法.ppt
- 2025广东广州市天河区拟招聘英语实习老师1人备考题库附答案.docx
- 2025广东广州市天河区城市管理第二保洁所招聘编外工作人员4人笔试备考试卷附答案解析.docx
- 2025广东广州市越秀区流花街道办事处招聘综合事务中心辅助人员1人笔试历年题库附答案解析.docx
- 2025广东广州市花都区新雅街清初级中学招聘临聘教师1人备考历年题库带答案解析.docx
- 2025广东广州市天河区城市管理第二保洁所招聘编外工作人员4人笔试备考试卷带答案解析.docx
- 江苏省盐城市东台市三仓镇区中学2026届八年级数学第一学期期末教学质量检测试题含解析.doc
- 2025广东广州市天河区城市管理第二保洁所招聘编外工作人员4人备考题库带答案解析.docx
- 江苏省盐城市亭湖区2026届数学八上期末考试试题含解析.doc
- 安徽省蚌埠市淮上区2026届数学八年级第一学期期末达标检测模拟试题含解析.doc
- 2025广东广湛城旅游轮有限公司招聘备考历年题库附答案解析.docx
最近下载
- 2023年山东水利职业学院单招综合素质考试试题及答案解析.docx VIP
- 2023年山东水利职业学院单招考试综合素质模拟试题及答案解析.docx VIP
- 福建省宁德市2024-2025学年八年级上学期期末考试历史试题.pdf VIP
- 湘2021G301预制带肋底板混凝土叠合楼板(混凝土肋、钢筋肋、钢管肋)(版本2).docx VIP
- 湘2021G301预制带肋底板混凝土叠合楼板(混凝土肋、钢筋肋、钢管肋)(版本2).docx VIP
- 湘2021G301 预制带肋底板混凝土叠合楼板(混凝土肋、钢筋肋、钢管肋).docx VIP
- 学生道德品质教育与养成课件.ppt VIP
- 儿童品格尊重课件.pptx VIP
- 广日电梯MAX-E 电梯维修手册(00版本).pdf VIP
- 杭州威灵专用交流伺服驱动器使用手册2020.pdf VIP
原创力文档

文档评论(0)