引用变量的内存位置是什么?

时间:2014-06-03 05:32:17

标签: c++

int main()
{
  int i = 10;
  int &j = i;
  int k = 20;
  j=k;
  cout << i << j << k;
  return 0;
}

上述计划的输出是202020。

在上面的代码片段中,i和j的内存位置是什么。 它们的内存位置是否相同或不同?

3 个答案:

答案 0 :(得分:3)

j是对i的引用,因此每当您更改j的值时,我的值也会发生变化。

答案 1 :(得分:0)

你可能需要做更多的学习,以便将来能够解决这些问题,但是让我们一起完成你的计划:

  int i = 10;  //Makes an int with value 10
  int &j = i;  //Makes a reference which points to i
  int k = 20;  //Makes an int with value 20
  j=k;         //You are making the reference the area that 
               //j represents (ie. i) the same as k
  cout << i << j << k;  //j = 20 therefore i = 20

希望有所帮助。

答案 2 :(得分:0)

int i = 10;

我已经在堆栈上分配了,其地址指向值10。

int &j = i;

j已在堆栈上分配,其地址已分配给i的地址,其地址指向值10.此时i和j的地址相同。

int k = 20;

k已在堆栈上分配,其地址指向值20。

j=k;

地址j的值已分配给地址k(20)处的值。

此时,i和j具有相同的地址,其值为20。

k具有不同的地址,但k地址的值也是20。