通过引用传递是否涉及复制地址

Does passing by reference involve copying the address?

本文关键字:复制 地址 是否 引用      更新时间:2023-10-16

链接的问题列出了实现引用的两种可能方法:作为别名或指针。一个回复说,从程序员的角度来看,两者没有区别。在我看来,这不是真的:

  • 如果引用在内部是一个别名,那么按引用传递应该没有开销(在这种情况下,我想知道为什么不按常量传递int引用,而不是按值传递(
  • 如果引用在内部是一个指针,那么通过引用传递会导致复制地址的成本(而通过const引用传递int会同时导致复制地址和引入间接寻址(

我的分析正确吗?那么,什么是内部引用,别名还是指针?

一个回复说,从程序员的角度来看,两者之间没有区别。

这是真的。

没有可移植的方法来区分引用是作为指针实现还是以其他方式实现。从程序员的角度来看,您所考虑的差异是无关紧要的。传递对函数的引用从来都不是完全免费的,所以称传递指针为"开销"有点过于乐观。