无法理解参考定义

时间:2013-10-03 03:37:19

标签: c++ reference definitions

如果ri是对i的引用,我不太明白为什么输出为10 10

int i, &ri = i;
i = 5; 
ri = 10;
std::cout << i << " " << ri << std::endl;

有人可以为我解决这个问题吗?

同样,

int i = 0, &r1 = i;
double d = 1, &r2 = d;

r2 = r1;
std::cout << r2;  // output 0
i = r2;
std::cout << i;  // output 0
r1 = d;
std::cout << r1; // output 0

如果i = r2并且当d = 1时r2是对d的参考,为什么输出1不是?另外,当r1 = d时,为什么输出1也不是?

2 个答案:

答案 0 :(得分:0)

引用就像解决原始项目一样。喜欢*(&amp; some_variable)

在你的代码中就行

r2 = r1;

d的值设置为i的值0

从那时起,所有值均为0

如果您将名称r1替换为ref_i,将r2替换为ref_d则有意义。

在这里试试:

http://ideone.com/SHxQLN

int i = 0, &ref_i = i;
double d = 1, &ref_d = d;

ref_d = ref_i;       // <<-------------------- Put value of i into d
std::cout << ref_d; 

i = ref_d;
std::cout << i;

ref_i = d;
std::cout << ref_i;  

答案 1 :(得分:0)

将引用视为对象的别名(替代名称)。无论你使用引用做什么,都可以使用它引用的对象。这里:

int i, &ri = i;

你说ri是我的另一个名字。因此,在这里:

i = 5;

你设置i = 5,这里

ri = 10;

你设定i = 10.