下载此文档

引用传递参数.doc


文档分类:论文 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
用引用传递函数参数传递引用给函数与传递指针的效果一样,传递的是原来的变量或对象,而不是在函数作用域内建立变量或对象的副本。我们看到对swap(int,int)传值方式函数的调用不影响调用函数中的实参,结果并未达到交换数据的预想目的。使用指针传递方式的swap(int*,int*)函数的调用,能够达到预定的目的(),但是函数的语法相对传值方式来说比较累赘。首先,在swap()函数内需要重复递引用(dereference)(*px),这容易产生错误且难于阅读。其次,调用函数需要传递变量地址,使swap()内部的工作对用户太过显然。而且还有swap(&x,&y)的形式会造成一种交换两个变量地址的错觉。 C++的目标之一就是让使用函数的用户无须考虑函数是如何工作的。传递指针给使用函数的用户增加了编程和理解的负担,这些负担本应属于被调用函数。例如,下面的程序用引用改写swap()函数的定义及调用: //********************* //** ** //********************* #include<> voidswap(int&x,int&y); voidmain() { intx=5,y=6; cout<<"beforeswap,x:"<<x<<",y:"<<y<<endl; swap(x,y); cout<<"afterswap,x:"<<x<<",y:"<<y<<endl; } voidswap(int&rx,int&ry) { inttemp=rx;rx=ry;ry=temp; } 运行结果为: beforeswap,X:5,y:6 afterswap,x:6,y:5 在主函数中,调用swap()函数的参数是x和y,简单地传递变量而不是它们的地址。而事实上,传递的是它们的地址。引用传递的内存布局与指针相仿,只是操作完全不同。每当使用引用时,C++就去求该引用所含地址中的变量值,见图9-4: 引用具有指针的威力,

引用传递参数 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数2
  • 收藏数0 收藏
  • 顶次数0
  • 上传人q1188830
  • 文件大小30 KB
  • 时间2019-11-21