如果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也不是?
答案 0 :(得分:0)
引用就像解决原始项目一样。喜欢*(&amp; some_variable)
在你的代码中就行
r2 = r1;
将d
的值设置为i
的值0
。
从那时起,所有值均为0
如果您将名称r1
替换为ref_i
,将r2
替换为ref_d
则有意义。
在这里试试:
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.