当我们打印实际变量和引用变量的地址时,它显示相同的地址为什么?
答案 0 :(得分:10)
引用是另一个变量的别名 - 它只是分配给引用的东西的另一个名称。
在幕后,编译器可能会使用指针机制来实现它,但是如果知道有别名的东西和引用的生命周期,那么编译器可以省去
答案 1 :(得分:6)
因为它们都指向相同的内存位置。这基本上是通过引用传递的全部内容。不是传递(复制)变量的实际值,而是为了性能(和内存使用)原因而发送它的地址。
引用类似于指针,但它们更安全,并且在几个方面与指针不同。有关详细信息,请查看this page。
答案 2 :(得分:5)
知道这一点也很重要:
$ 8.3.2 / 3 - “未指明参考文献是否需要存储(3.7)。”。
答案 3 :(得分:3)
因为它是参考。这意味着它引用了实际的变量。
int i = ...;
int& ri = i;
在此示例中,ri
就像i
的别名。