【发布时间】:2015-10-09 20:21:39
【问题描述】:
int x = 10;
int& y = x;
为此,x 在堆栈上分配为 2/4/8 字节,00...1010 被写入这些字节。 y 的内存布局及其内容是什么样的?
【问题讨论】:
-
永远不要假设它是四个字节。可能是八个。 理论上,引用只是为程序员提供便利。在这种情况下,
x和y是相同的东西,只是名称不同。在实践中,谁知道呢。如果编译器认为这有帮助,可能会有多个10副本。请记住,变量从不占用内存空间,只有它们所代表的值才会占用。 -
AFAIK C++ 标准只规定引用应该是另一个对象的别名,并不要求它以任何特定的方式实现,所以你不应该依赖这个。
-
@Borgleader 确实如此,尽管它们的行为确实很像常量自动取消引用指针
-
@KABoissonneault Shhhhhhhhhhhhhhhhhhhhhhhhhh:P
-
可能是y实际上根本不会被分配,或者被分配为指针