我只是想知道,引用是如何内部存储的?我觉得深入了解该级别将使我更好地理解指针与引用的概念并做出决策选择。
我怀疑它的工作原理基本上与指针相同,但编译器负责处理指针。请指教。
根本不要求以任何方式“存储”引用。就语言而言,引用只是某个现有对象的别名,这就是任何编译器必须提供的全部内容。
如果引用只是范围内已经存在的其他对象的简写,或者带有引用参数的函数被内联,那么完全有可能根本不需要存储任何内容。
在需要明确引用的情况下(例如,在不同翻译单元中调用函数时),您实际上可以实现T & x
as a T * const
并对待每一次发生的情况x
隐式取消引用该指针。即使在更高的层次上你也可以想到T & x = y;
and T * const p = &y;
(以及相应的x
and *p
)本质上是等价的,所以这将是实现引用的明显方法。
但当然没有任何要求,任何实现都可以自由地做任何它想做的事。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)