我只是想知道,引用是如何在内部存储的?我觉得深入了解该级别将使我更好地理解概念指针与引用并做出决策选择。
我怀疑它基本上和指针一样工作,但编译器负责处理指针。请指教。
最佳答案
根本不要求以任何方式“存储”引用。就语言而言,引用只是某个现有对象的别名,这就是任何编译器必须提供的全部内容。
如果引用只是已经在范围内的其他对象的简写,或者带有引用参数的函数被内联,则完全有可能根本不需要存储任何东西。
在需要明确引用的情况下(例如,在不同的翻译单元中调用函数时),您实际上可以将 T & x
实现为 T * const
并将每次出现的 x
视为隐式取消引用该指针。即使在更高的层次上,您也可以想到 T & x = y;
和 T * const p = &y;
(以及相应的 x
和*p
) 本质上是等效的,因此这将是实现引用的明显方式。
但当然没有任何要求,任何实现都可以自由地为所欲为。
关于c++ - 引用如何在 C++ 内部存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9342234/