c++中的引用(&)到底都有什么用处?

&据说有很多种用法,有传址传递,在面向对象中也能用作形参。貌似还有节约内存的用法,这个我学的不大好,请强人们给我讲一下,他的各种用法和原理,以及什么情况下用它,谢谢拉!... &据说有很多种用法,有传址传递,在面向对象中也能用作形参。貌似还有节约内存的用法,这个我学的不大好,请强人们给我讲一下,他的各种用法和原理,以及什么情况下用它,谢谢拉! 展开
 我来答
ayayahooo
推荐于2018-04-12 · TA获得超过1339个赞
知道小有建树答主
回答量:1068
采纳率:0%
帮助的人:0
展开全部
比如int f(int a){...}
当你如下调用时:
int b;
f(b);
编译器会把b的值赋给a,在函数体内操作a;
而如果函数定义为:int f(int& a){...}
当你调用时,没有这个赋值的过程,因为此时a是实参的别名,相当于直接操作了实参b;
从这个例子可以看到引用的两个特性:
1 节约空间,少了一个实参赋值给形参的过程
2 可以直接操作实参,而不是形参
你说的面向对象中的节约内存,就是第一个特性,因为类对象往往很大,如果赋值方法进行函数调用的话,会增加开销。
763401802
2015-10-17 · TA获得超过504个赞
知道小有建树答主
回答量:319
采纳率:0%
帮助的人:124万
展开全部
主要是参数传递时起作用,普通的参数传递,其实是传递了一份拷贝,如果参数比较复杂,比如大对象,那么产生的开销会很大;而且普通的参数传递,不能把更改回写,而引用传递可以改变参数的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hantfx2000
2015-11-13 · 超过16用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:31.3万
展开全部
int num = 0;//给num 分配了一个int型的内存空间,初始化为 0;
int &n = num;//没有分配内存空间,引用了一个变量名;
相当于给num 又起了一个别名叫 n;使用 n 和 num 是一样的;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2008-10-13
展开全部
我也是半桶水,我就把它理解为指针,他有指针的一些优势,但和指针又有不同。
编译器会为指针分配空间,不会为引用分配空间。
比如调用函数,传递参数时,可以避免把实参复制给形参的消耗。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虔敬还巍峨的小夜鹰3349
2008-10-13 · TA获得超过129个赞
知道答主
回答量:138
采纳率:0%
帮助的人:94.8万
展开全部
比如你要传递一个实参 如果实参过大 为了避免复制就可以用引用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式