作者:8090互助联盟 | 来源:互联网 | 2023-05-24 11:44
我在浏览博客上,看到有人用反汇编的方法得到了这样一个结论:引用的内部实现是只读指针,其内存空间存储的是被引用的变量的地址,而“引用没有内存空间的分配”只不过是编译器为了简化问题给程序员做出的假象。那么
我在浏览博客上,看到有人用反汇编的方法得到了这样一个结论:
引用的内部实现是只读指针,其内存空间存储的是被引用的变量的地址,而“引用没有内存空间的分配”只不过是编译器为了简化问题给程序员做出的假象。
那么鉴于这一点,在传参的时候用引用的避免拷贝所产生的高效性又是如何产生的?
是不是用指针做形参和用引用做形参,在效率上(只从效率上看,不看安全性和可读性)其实没有不同?C++ primer 上关于指针和引用做形参的描述上没直接说效率比较,只是说指针做形参是值传递,涉及到拷贝;而引用做形参是引用传递,不涉及到拷贝。
如果那个结论是对的。那么我可不可以认为用值传递和引用传递来区别函数参数的传递是不准确的,而是应该是类似于:值传递(不包括指针)和地址传递(指针和引用都是)?
如果那个结论是错误的。一个我困恼很久的问题:一个引用如果完全没有内存空间,那么编译器是如何知道他所引用的地址?编译器是用什么将引用的名字和被引用的变量绑定在了一起?