通过引用传递是否涉及复制地址
Does passing by reference involve copying the address?
链接的问题列出了实现引用的两种可能方法:作为别名或指针。一个回复说,从程序员的角度来看,两者没有区别。在我看来,这不是真的:
- 如果引用在内部是一个别名,那么按引用传递应该没有开销(在这种情况下,我想知道为什么不按常量传递int引用,而不是按值传递(
- 如果引用在内部是一个指针,那么通过引用传递会导致复制地址的成本(而通过const引用传递int会同时导致复制地址和引入间接寻址(
我的分析正确吗?那么,什么是内部引用,别名还是指针?
一个回复说,从程序员的角度来看,两者之间没有区别。
这是真的。
没有可移植的方法来区分引用是作为指针实现还是以其他方式实现。从程序员的角度来看,您所考虑的差异是无关紧要的。传递对函数的引用从来都不是完全免费的,所以称传递指针为"开销"有点过于乐观。
相关文章:
- 通过引用传递是否涉及复制地址
- C++:误解内存地址和指针的复制值
- 内存C++复制是否将内存地址复制到另一个阵列
- 为什么 spi2 在使用复制构造函数时指向不同的地址作为 spi
- 为什么通过复制捕获 lambda 具有与外部变量相同的地址
- 将 char[ ][ ] 的地址复制到 C 字符串
- 如何获取临时/右值的地址进行复制
- 使用 mmap 地址复制构造函数
- 将指针从一个向量复制到另一个向量;地址指出了变化
- 复制包含原子成员的对象的地址
- 为什么我的复制构造函数不适用于新调用并且具有相同的内存地址
- 将多维数组的地址复制到指针时的指针维度
- 我一直在复制一个给定地址的类,我错了
- 是否有任何操作系统允许将内存从一个地址移动到另一个地址而不进行物理复制?
- libC++库的地址净化构建为什么会在libcxx类中出现不可复制的ASAN问题
- 从缓冲区中提取大小字节并将其复制到所提供的数据地址
- 通过复制将数组地址传递给匿名函数失败
- 复制函数打印字符串地址,而不是字符串内容
- 如何在Visual Studio中复制变量地址
- 在C++中复制链表时使用指针与运算符的地址