- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
002函数及重定向及字符串
函数机制
一、函数性质
函数是实现某一功能的小程序,它可以用于求值,可以是一个过程;函数可以有参数,也可以没有参数,可以有返回值,也可以没有返回值;函数的参数可以是数值,也可以是指针。
许多时候,我们使用一个函数,只需要了解它的功能,及输入和输出,并不关注函数内部实现机制,这叫函数的黑盒性。
二、函数的声明(多文件函数声明)、定义、调用
三、函数的参数传递
1.按值传递
2.按地址传递
例:指针做函数参数
#include iostream.h
void swap2(int *px, int *py)
{
int temp = *px;
*px = *py;
*py = temp;
}?
main(void)
{
int x = 5, y = 6;
swap2(x, y);
cout x = x endl;
cout y = y endl;
}
3.引用传递
(1)什么是引用
引用,就是别名,它完全等价于被引用的对象。引用类型用标识符表示。
(2)定义
类型 引用名=变量;
在声明引用时,必须同时进行初始化
void类型、数组、指针、引用等不能建立引用
(3)引用主要有三种用途
-变量或对象的别名;
-引用作函数的参数;
-函数的引用类型返回值。
(4)举例
int studentname;
int sn=studentname;
float studentscore=99;
float ss=studentscore;
ss=59;
例:引用作变量、对象别名
#include iostream.h
void main(void)
{
int i = 5;
int j = i;
cout“i=”iendl;
cout“j=”jendl;
j = 6;
cout“i=”iendl;
cout“j=”jendl;
int k = j;
cout“i=”iendl;
cout“j=”jendl;
cout“k=”kendl;
k=7;
cout“i=”iendl;
cout“j=”jendl;
cout“k=”kendl;
}?
引用作函数参数(对比)
编程,实现两个变量值的交换。
#include “iostream.h”
void swap(int x,int y)
{ int t;
t=x;x=y;y=t;}
main()
{ int a,b;
cout”请输入两个数:\n”;
cinab;
cout”你输入的两个数是:”a” ”bendl;
swap(a,b);
cout”交换后的两个数是:”a” ”bendl;
}
函数返回值为引用类型
优点:
-函数返回的是所返回的变量或对象本身,而不需要建立临时的对象。这样减少了程序运行的开销;
- 如果一个函数返回的是一个引用类型,那么该函数可以被当作左值使用
#include iostream.h
int a[]={1,3,5,7,9};
int index(int);
void main(void)
{
coutindex(2)“\t”a[2]endl;
index(2)=25;
coutindex(2)“\t”a[2]endl;
}
int index(int i)
{
return a[i];
}
四、递归调用
1.递归调用:就是子函数自己调用自己。
2.例:
求1+2+3+……+10的和。
求1*2*3*……*10的积。
五、函数重载
1.带缺省参数值的函数
C++允许实参个数与形参个数不同,方法是在说明函数原型时,为一个或多个形参指定缺省值。
如:int add(int a=5,int b=6,int c=7);
int add(int a,int b=6,int c=7);
int add(int,int,int c=7);
说明:
所有取缺省值的参数都必须在无缺省值的参数的右边。int add(int a=5,int,int c=7);错
调用函数时,从左到右将实参与形参结合,某个参数省略,则其后的参数都要省略。add( , , 10);错
例:
#include “iostream.h”
int add(int a=4,int b=7,int c=9);
main()
{
coutadd()endl;
}
int add(int a,int b,int c)
{
return a+b+c;
}
例:
#include iostream.h?
void Fun(int x, int y = 0) //参数y为缺省参数
{
cout x =
您可能关注的文档
- 基士得耶5327测试代码和错误码代码.doc
- 实验6java继承.doc
- 防爆电磁阀的选用及防爆知识.doc
- 第三章企业价值管理.ppt
- 团泊中学初中理科和谐学习教学研究实施方案.doc
- 山东高中信息技术水平测试(操作题:电子邮件1).doc
- 六年级统计与概率教案.doc
- 修女的真言.ppt
- 物业公司给排水系统管理办法.doc
- 沪上十大即将失传的上海菜.doc
- 新的一年工作展望.docx
- 医生年终个人工作的述职报告(3篇).docx
- 2023年消防设施操作员之消防设备中级技能考前冲刺练习题附答案详解.docx
- 2022-2023年环境影响评价工程师之环评技术导则与标准通关练习题包括详细解答.docx
- 2023年中级注册安全工程师之安全生产管理考前冲刺检测卷和答案.docx
- 2023年中级银行从业资格之中级银行管理考前冲刺测试卷提供答案解析.docx
- 2023年公共营养师之二级营养师通关模拟考试试卷附带答案.docx
- 证券分析师之发布证券研究报告业务考前冲刺模拟题库.docx
- 2022-2023年二级建造师之二建建设工程法规及相关知识综合提升测试卷附答案.docx
- 2023年二级建造师之二建机电工程实务通关模拟考试试卷提供答案解析.docx
1亿VIP精品文档
相关文档
最近下载
- 2023年江苏省小学科学实验知识竞赛题汇编.docx
- 2013款比亚迪速锐_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- 薪酬管理课后习题之复习与思考部分.pdf
- 学堂在线汽车理论(清华)章节作业答案.docx
- T_CRES 0018-2023 风力发电机组预应力基础锚栓笼组合件技术规范(OCR).pdf
- 同济大学毕业设计基坑支护设计计算书.doc
- 歌曲《离别开出花》歌词(排版完美打印).docx
- 【新整理】人教版小学数学五年级上册教材分析ppt课件【完整版】.pdf VIP
- 光纤激光切割机软件系统使用手册-广东大族粤铭激光集团股份有限公司.PDF
- 深入学习《中华人民共和国保守国家秘密法》PPT课件.pptx VIP
文档评论(0)