int main()
{
int a=45;
int& re=a;
cout << &a << endl;
cout << &re << endl;
return 0;
}
Output :
0x61ff18
0x61ff18
当我打印两个变量的地址相同时,是否意味着引用变量不占用堆栈中的内存?
答案 0 :(得分:2)
C ++中引用的地址运算符给出了引用对象的地址 - 而不是引用变量本身的地址。按C ++规范。
因此,您会看到相同的值。
答案 1 :(得分:2)
&
获取引用对象的地址,而不是引用本身的地址,因此&a
和&re
的输出相同。在典型的实现中,引用本身确实需要内存,除非被优化掉。请参阅您的实现文档及其汇编输出(GCC和clang的-S
标志)。语言规范不保证。