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