- 2
- 0
- 约4.05千字
- 约 27页
- 2017-06-30 发布于江苏
- 举报
第9章 函数的使用
第9章 函数的使用 我们在前面编写的程序实例中基本上只有一个main函数,没有其他函数。而在实际应用中,在比较大的程序中,通常包含比较复杂的逻辑和功能,这些功能包含若干子功能,子功能可能分解出更小的子功能。这些功能组合在一起,才能形成完整的程序。在C++语言中,上述的这些功能模块是由函数来实现的。所谓函数就是一段可以实现某种功能的程序;这段程序相对独立,具有自己的输入和输出,可以被重复调用,类似一个“黑匣子”。 第9章 函数的使用 9.1 函数的概念 在C++中,可以将一段经常需要使用的代码封装起来,在需要使用时可以直接调用。C++程序的执行是从main函数开始,在main函数可调用其它函数,但其它函数中不能调用main函数。 函数的分类 从用户角度可分为 标准函数:即库函数,可直接调用。 自定义函数:需要自己写代码。 从函数的形式上可分为 无参函数:无参数传递 有参函数:有参数传递 9.2 函数的声明 函数必须首先声明然后使用,正如变量必须首先声明然后使用一样。 9.3 函数的定义 函数是由函数名以及一组操作数表示的。函数的操作数也可以称为是形参,在一对圆括号中声明的,形参与形参之间可以用逗号分割开。函数所执行的实现功能的运算是在一个称为函数体的块语句中定义的。每一个函数都有一个返回类型。我们在编写程序过程中会遇到无参函数和有参函数等类型,它们的定义相互之间是有一定的区别的。 9.3.1 不同函数类型的定义形式 函数的一般形式如下: 函数返回值类型 函数名(形式参数列表 ) { 语句部分 } 在函体中定义的变量只有在该函数中才可以访问,在main函数或其它函数中引用会出错。这种变量称为局部变量。 9.3.2 函数的返回值 函数的返回值是通过函数中的return语句获得的,return语句将被调用函数中的一个确定值带回到主调函数之中去,而如果需要从被调用函数中带回一个函数值供主调函数使用,则在函数定义体中必须要包含return语句。一个函数中可以包含多个return语句,执行到哪个语句哪个起作用。return语句的后面可以是一个值也可以是可以得出值的表达式。例如: int get_bigger(int a,int b) { return(xy?x:y); } 9.3.3 函数的形参表 形参表是一系列用逗号分隔的参数类型和参数名组成的,如果两个参数具有相同的类型,其类型也必须重复进行声明。 int get_bigger(int a,int b,int c); //正确的用法 int get_bigger(int a,b,c); //错误的用法 函数的形参表可以是空的,没有形参的函数可以用空的形参表或者在形参表中写上void来表示。下面的两种表示是相同的: void print_now(); void print_now(void); 形参与实参的数据类型必须相同或可相互转化。 9.4 函数的参数传递 每次调用函数的时候,都会重新创建被调用函数所有的形参,这个时候主调函数的位置传递的实参就会重新初始化被调用函数所有对应的形参。注意如果形参是非引用类型,则复制实参的值,如果形参为引用类型则它只是实参的别名,并不会赋值实参的值。有关概念将会在下面的章节中讲解。 9.4.1 形式参数与实际参数 在有参函数中,在调用函数的时候,主调函数和被调用函数之间有数据传递关系。在定义函数的时候函数名后面括号中的变量名称为形式参数,也就是形参;在主调函数中调用一个函数的时候,函数名后面括号中的参数称为实际参数,也就是实参。 9.4.2 非引用形参 在C++中实参向形参的数据传递是值传递。在调用函数的时候,才会给形参分配存储单元,并将实参对应的值传递给形参,调用结束后形参单元才会被释放,而实参单元仍保留并维持原值。 9.4.3 引用形参 在上一节中我们学习了一种函数中的普通的参数传递情况,这种情况下改变形参是不能影响实参的值的。那么如何实现通过改变形参的值直接改变实参的值的效果呢?这就需要设置引用形参了。 9.5 函数的调用 函数调用的形式为: 函数名(实参列表); 当调用无参函数的额时候实参列表是可以没有的,只写一个空的圆括号即可。如果实参列表包含有多个实参时,则各个参数之间使用逗号隔开,注意实参和形参的个数应该相等而且类型也应当匹配或者能相互转换。函数调用的一般有三种情况。 第一种情况就是当不需要函数带回一定的返回值时,将函数调用看成一个语句。 第二种情况是函数出现在表达式之中,直接将函数的返回值作为表达式的一个操作数参与运算,这种情况中的函数需要带回返回值。 第三种情况是直接将函数调用作为另一个函数调用的实参。 9.6 函数的嵌套调用 在前面章节的学习中我们了解到,在C++中函数是不能嵌套定义的。但是
您可能关注的文档
- 电脑磁记录簿市场前景预测及投资规划分析报告(目录).doc
- 白云二高张君.ppt
- 省略句g1.ppt
- 磁化水器外壳市场前景预测及投资规划分析报告(目录).doc
- 磁感应强(人教版).ppt
- 磁感应与磁现象.docx
- 磁带机讲课.ppt
- 磁铁矿产品市场前景预测及投资规划分析报告(目录).doc
- 福州一中2009届高三数学(理)下学期第一次质检试卷.doc
- 科学城绿榕路、彩虹一路、伴河路、河东路、荔红路绿化工程.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 毕业论文(设计)-小型液压升降平台机械工程及自动化.doc VIP
- 在线网课学习课堂《现场生命急救知识与技能(南昌大学 )》单元测试考核答案.docx VIP
- 洛可可风格建筑.ppt.ppt VIP
- 鳞状细胞癌学习课件.pptx VIP
- 国企优化整合方案汇编.docx VIP
- 《农机电器设备使用维护》课件——项目一:农机电气系统基础.pptx VIP
- 开工第一课春节复工安全生产培训ppt.pptx VIP
- 宝可梦 Let's Go!皮卡丘1.02版switch大气层系统游戏修改代码.docx VIP
- 《农机电器设备使用维护》课件——农机电气系统的组成及特点.pptx VIP
- 工伤职工停工留薪期分类目录模板范本.pdf VIP
原创力文档

文档评论(0)