c
我想知道这段代码中的引用变量是否如:
int a = 5;
int & c = a;
从堆或堆栈中分配。任何人都可以帮忙吗?谢谢
c
我想知道这段代码中的引用变量是否如:
int a = 5;
int & c = a;
从堆或堆栈中分配。任何人都可以帮忙吗?谢谢
引用只是一个别名,C++11 标准未指定它是否需要实际存储。
根据 C++11 标准的第 8.3.2/4 段:
未指定引用是否需要存储 (3.7)。
引用只是别名,不必特别分配到任何地方。该标准没有指定这种细节,甚至根本不需要引用有任何存储空间。
没关系,引用只是一个常量自动取消引用的指针,没有指针算术,也没有空值或不确定值的选项。
关于重新制定的问题 - 使用引用的方式意味着它们将主要是堆栈分配的。那是在所有非静态场景中,它们的存储不能省略。这就是 C++,一种高性能的编程语言,它忽略了任何没有被使用的东西。
大多数编译器将引用视为受限指针。