c++ - 引用如何在 C++ 内部存储?

标签 c++ pointers reference

我只是想知道,引用是如何在内部存储的?我觉得深入了解该级别将使我更好地理解概念指针与引用并做出决策选择。

我怀疑它基本上和指针一样工作,但编译器负责处理指针。请指教。

最佳答案

根本不要求以任何方式“存储”引用。就语言而言,引用只是某个现有对象的别名,这就是任何编译器必须提供的全部内容。

如果引用只是已经在范围内的其他对象的简写,或者带有引用参数的函数被内联,则完全有可能根本不需要存储任何东西。

在需要明确引用的情况下(例如,在不同的翻译单元中调用函数时),您实际上可以将 T & x 实现为 T * const 并将每次出现的 x 视为隐式取消引用该指针。即使在更高的层次上,您也可以想到 T & x = y;T * const p = &y; (以及相应的 x*p) 本质上是等效的,因此这将是实现引用的明显方式。

但当然没有任何要求,任何实现都可以自由地为所欲为。

关于c++ - 引用如何在 C++ 内部存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9342234/

相关文章:

c++ - 我需要类似 "using Base::*;"的东西

c++ - 为什么通过指针分配给常量没有效果?

c++ - 如果其中一个函数有引用,如何定义两个具有相同名称和参数的函数?

Java 方法与引用性能

c++ - 解决类似 Flood-It 难题的最少点击次数

c++ - Linux上的C/C++多线程服务器/客户端崩溃

c - 将值填充到指针数组

c - 如何在C语言中使用指针访问结构体

c++ - 使用具有默认值的引用参数是好习惯吗?

c++ - toupper属于哪个命名空间