【发布时间】:2021-01-08 21:15:51
【问题描述】:
我是 C++ 新手,想知道引用在 C++ 中是否有内存。
#include <iostream>
int main()
{
int a = 55;
int& b = a;
int* c = &b;
int* d = &a;
std::cout << (c)<<std::endl;
std::cout << d;
}
这输出: 0077F800 0077F800
如果它指向同一个地址,那么引用只是访问同一个变量的另一种方式吗?
【问题讨论】:
-
无法获取引用的地址。
&运算符获取引用对象的地址。也不可能直接获得参考的大小。引用上的sizeof获取被引用对象的大小。 -
引用只是访问变量的另一种方式,但这并不能告诉您它们是否有内存。您将引用的含义(这是一个 C++ 语言问题)与引用的实现(这是一个关于 C++ 编译器的问题)混淆了。
-
感谢您的回答,简而言之,&b 只是返回被引用对象的地址,它在内存中没有实际空间?