- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《第1章C语言的扩展知识
第一章 C语言的扩展知识
特别声明:本教程用于方便学生学习C++编程,部分内容是从网上收集整理而成,不做商业目的使用。如果有涉及您知识产权部分,请告知识我们。同时有人要将其应用你商业作用,也请先与我们联系。
---湖北科技学院.计算机学院.网络工程专业.休闲游戏开发小组(QQ2861297479)
1.1引用
函数中的参数可以按值或引用传递。按值传递参数时,被调用函数定义一个与参数类型相同的新变量,并且将参数的值复制到该变量中。该函数无权访问主调程序中的原始变量,只能访问自己创建的副本,对这个副本进行的任何更改都不会影响原始变量。当函数没必要修改主调程序中的原始变量时,这样是很有用的。
按引用传递参数使用不同的技术,这种技术将主调程序中的原始变量的引用传递给函数,而不是传递值。
按引用传递的主要优点是,函数可以访问主调程序中的实际变量。这种方法还提供一种将多个值从被调用函数返回到主调程序的机制。
1.1.1引用参数
引用提供对象的别名或可选名。引用的最重要的用途是向函数传递函数。下面的示例将有助于阐明引用机制。
#includeiostream.h
void swap(int d1,int d2)
{
int t=d1; d1=d2; d2=t;
}
void main()
{
int x=10,y=15;
swap(x,y);
cout”x:”x;
cout”y:”y;
}
其中,d1和d2分别是变量x和y的别名,换句话说,d1就是x,它不是指向x的指针,也不是x的副本。对d1所做的任何修改都会同样发生在x上,反之亦然。“”告诉编译器将变量从主调函数传递来的实际变量的引用来处理,它产生的效果是,函数使用的就像是主程序的实际变量一样。
使用引用可以提高某些程序的效率,这是因为大的数据结构如果按引用来传递,效率会更高。
1.1.2从函数返回引用
我们已经看到按引用传递不会造成实际变量的副本,而只是创建一个别名,该别名在被调用函数中可以用作形式变量。类似地,返回引用并不是返回变量的副本,而是返回别名。
int fn(int num)
{
return(num);
}
void main()
{
int n1,n2;
n1=fn(n2);
}
请注意,函数头包含一个“”。(在函数名前),这就是函数返回引用变量的方式。在这种情况下,函数采用对整型的引用作为其参数,并返回对整型的引用。这种功能对于返回对象非常有用。
1.1.3常量引用
将参数按值传递给函数会创建对象的副本,诸如int类型的少量数据一般按值传递。引用参数允许函数修改一或多个参数的状态。如果要保持参数的值不变,保证这些值不会在函数中被修改,可以使用常量引用。常量引用用于不希望修改对象,以及要把大对象当作输入参数传递给函数的情况。
在按值将对象传递给函数时,如果对象比较大,则有可能没有足够的内存,而且会降低程序的执行速度。在这种情况下,按引用传递对象是一种可行的方案。但是这可能造成对象被意外删改。因此,在这种情况下可以使用常量引用直接访问原始参数,同时可以确保不会对实际参数进行任何修改。常量引用在传递参数时可提供高效性和安全性。下面的示例说明如何声明常量引用。
double distance(const point p1,const point p2);
在上面的代码行中,p1和p2是point类型的对象,按常量引用传递给函数distance。
我们还可以将引用声明为变量。一旦将引用绑定到某个对象上,则不能再绑定别的对象。例如:
int const r=num1;
将r声明为对int 型引用的常量。在表达式中使用r时,它就像整型常量一样,任何修改ri的尝试都会产生编译错误。因为常量值无法修改,所以必须在引用的生命周期开始时将其绑定到对象。
1.2函数的默认参数
在任何程序中,当需要使用表达式或语句来执行任何操作时,可以调用函数来实现。当定义函数时,实际上是在指定如何完操作。
函数声明给出函数名,函数返回值的类型以及在函数调用中必须提供的参数的个数和类型。函数声明可以包含参数名,也可以不包含。在c++中,调用函数时可以不指定全部参数,函数声明必须为那些可以不指定的参数提供默认值。
默认值在函数声明中进行定义。只要调用函数时没有指定参数,程序都将自动地按照默认值给参数赋值。下面是一个函数声明的例子。
void func(int n1,int n2=3,char c=’*’);
注意:在函数声明中,一旦给形参列表中的一个参数赋予了默认值,后续所有参数也都必须有默认值。因为在将实参的值赋给形参的过程中,是按从右向左的方向进行赋值的。
下面是一个错误的例子。
void errfunc(int n1=2,int n2,char ch=’+’);
调用函数时,如果缺少任何一个参数
您可能关注的文档
最近下载
- 天津财经大学2024届毕业生就业质量报告.pdf VIP
- 部编人教版五年级数学上册《小数乘法(全章)》PPT教学课件.ppt VIP
- 数字集成电路部分课后习题chapter11ex.pdf VIP
- 安全通信与安全通信标准EN50159.pdf VIP
- 消防安全管理方案.docx VIP
- 锂电池储能系统技术协议.docx VIP
- 四年级数学下册《每日一练》全52套.pdf VIP
- 2025年福建厦门海关口岸门诊部招聘检验检测岗8人笔试附带答案详解.docx VIP
- 部编版语文四年级上册全册教案.pdf VIP
- DB37_T 4614.2-2023 “爱山东”政务服务平台移动端 第2部分:运营管理规范.docx VIP
文档评论(0)