引用作为函数的参数有什么优缺点

 我来答
匿名用户
2011-07-05
展开全部
1、在函数调用过程中使用指针参数来传递数值,相比直接传递数值本身,能够带来时间和空间上节约。但是,使用指针有一些不便利的:第一,在函数中必须使用指针操作符“->”来操作指针参数;第二,调用函数时,必须通过地址操作符“&”来传递数值的地址。在C++中,引用能够避免上述烦琐的操作。当使用引用方式传递参数时,实参的地址能够自动传递到调用的函数当中,并且在函数当中使用引用参数时,地址又自动解引用为参数数值本身,函数中不需要使用指针操作符“->”。这些操作都由编译器自动完成,对程序员是透明的。
2、如果“函数参数有一个const float & a”,那么调用该函数时,参数值将自动转换为float类型,并类型float的临时变量地址传递到函数当中。因此,如果传递int、long以及char类型的变量时,程序能工作正常。如果传递double类型的变量,一旦该变量的数值超出float类型的数值范围,程序将工作失败。
另外,站长团上有产品团购,便宜有保证
另耒430
2018-03-31 · TA获得超过1万个赞
知道小有建树答主
回答量:234
采纳率:93%
帮助的人:9.7万
展开全部

使用引用传参的话,在函数中对该变量所做的修改,在函数返回后依然存在。这未必是程序员所希望的。

特点: 传入实参本身,不创建副本
好处: 传实参本身的好处

void swap(int &a, int &b)
{
int t = a;
a = b;
b = t;
}
确实可以交换两个变量
如果是
void swap(int a, int b)
{
int t = a;
a = b;
b = t;
}
传进去的是参数的拷贝,实参并没修改

2.不创建拷贝。可以很好的提升效率
如果参数是一个结构体或者类,很大,进行参数拷贝比较耗时,如果传引用就避免了这个过程

为了避免有时候不需要修改引用参数时对该参数误操作,可以加const做保护

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2011-07-03 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3750万
展开全部
特点: 传入实参本身,不创建副本
好处: 传实参本身的好处

void swap(int &a, int &b)
{
int t = a;
a = b;
b = t;
}
确实可以交换两个变量
如果是
void swap(int a, int b)
{
int t = a;
a = b;
b = t;
}
传进去的是参数的拷贝,实参并没修改

2.不创建拷贝。可以很好的提升效率
如果参数是一个结构体或者类,很大,进行参数拷贝比较耗时,如果传引用就避免了这个过程

为了避免有时候不需要修改引用参数时对该参数误操作,可以加const做保护
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dongyue2008
推荐于2017-11-24 · TA获得超过3603个赞
知道大有可为答主
回答量:1300
采纳率:100%
帮助的人:596万
展开全部
使用引用传参的话,在函数中对该变量所做的修改,在函数返回后依然存在。这未必是程序员所希望的。
使用引用传参,避免了变量复制的开销。比如参数如果是一个比较复杂的结构体,那么用引用就比直接传递来得好。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式