《第1章C语言的扩展知识.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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=’+’); 调用函数时,如果缺少任何一个参数

文档评论(0)

lunwen1978 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档