int main()
{
int i = 10;
int &j = i;
int k = 20;
j=k;
cout << i << j << k;
return 0;
}
上述计划的输出是202020。
在上面的代码片段中,i和j的内存位置是什么。 它们的内存位置是否相同或不同?
答案 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。