将引用传递给对象有啥好处? [复制]

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 哦,我期待返回声明。谢谢提醒。

以上是关于将引用传递给对象有啥好处? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

返回引用类型的返回引用的好处

将const引用/指针传递给类进行存储的首选方法,而不是复制引用的对象

Ruby 是按值传递还是按引用传递? [复制]

java的按值传递与按引用传递

C#7.0 ref引用传递

没有指针,我可以在 Python 中将引用作为参数传递吗? [复制]