如何在c++内部工作别名?它是否像指针一样分配自己的内存?
否则编译器如何处理它?
它像c++宏预处理器计算吗?
int x=5;
int &y=x; //Assembly of this???
这些被称为引用。
标准没有描述它们(或其他任何东西)如何在汇编级上工作。
在实践中,它们被实现为指针,除非编译器将它们优化掉(这对引用来说比指针更容易,因为它们不能被重新赋值)。
他们无关的宏,预处理程序不知道引用。
标准包含了一些有趣的引用措辞:它们"不是对象",其结果是你不能合法地检查它们的内存布局并修改它。但这主要是措辞的特点;在大多数情况下,它们像不可变指针一样工作。