变量的引用和地址(内存位置)

时间:2011-01-14 16:21:21

标签: reference

有人可以解释为什么以下代码段的输出是20

int i = 10;
cout << i << endl;

int &r = i;
r = 20;
cout << i << endl;

首先,变量i存储整数值10 然后显示10。 然后,r的地址(r的内存位置)设置为i10然后r变为20但为什么{ {1}}更改为i

20的整数内容已更改,而不是地址(内存位置)。

谢谢,

3 个答案:

答案 0 :(得分:1)

当你做一个引用它几乎就像一个指针,所以当你可以改变r你实际上改变了r指向的那个也是我。

实际上更精确的是,引用不是指针或地址,对象。至少在c ++世界中。

答案 1 :(得分:1)

变量r是对i的引用,它就像一个指针,除了不是说* r = 20; 你只说r = 20;这会改变r的值。

答案 2 :(得分:0)

将其视为:

int i = 10;
cout << i << endl;

int *p = &i;
*p = 20;
cout << i << endl;

这基本上就是在幕后发生的事情