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