将引用传递给对象有啥好处? [复制]
Posted
技术标签:
【中文标题】将引用传递给对象有啥好处? [复制]【英文标题】:What are the advantages of passing a reference to an object? [duplicate]将引用传递给对象有什么好处? [复制] 【发布时间】:2015-11-24 17:08:52 【问题描述】:我研究了对象可以通过引用传递(我的意思是函数的参数是引用)。但是为什么人们更喜欢它们而不是简单地传递对象。我的动机是只使用该对象而不是修改它,所以我不是指微不足道的优势。那么,将引用传递给对象有什么好处呢?
【问题讨论】:
你避免复制它。有些对象复制起来很昂贵;其他的根本无法复制,因此无法按值传递。 @IgorTandetnik 还有一个内存优势,因为如果对象不是通过引用传递的,那么参数对象(副本)将占用更多(额外)内存,并且一旦函数作用域结束? 是一样的。 “制作副本”必然意味着“分配内存来保存副本”和“最终销毁副本”。 【参考方案1】:以下是引用传递的一些优点:
-
没有创建新的变量副本,因此节省了复制开销。这
特别是在传递大型结构或类的对象时,使程序执行得更快。
可以传递数组或对象
有时函数需要更改原始值(例如,对数组进行排序、交换),有时更改函数内部的值很有用。
可以从一个函数返回多个值。
【讨论】:
如何从函数返回多个值? @LetDoit 使用通常所说的输出参数。 @ʎǝɹɟɟɟǝſ 我看到我们可以只返回单个值..return something;
@LetDoit 这里是一个例子:ideone.com/ySTZIz 如何通过引用返回两个值。
@Ashiquzzaman 哦,我期待返回声明。谢谢提醒。以上是关于将引用传递给对象有啥好处? [复制]的主要内容,如果未能解决你的问题,请参考以下文章