如果 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
如果当 d = 1 时 i = r2 并且 r2 是对 d 的引用,为什么输出不是 1?另外,当 r1 = d 时,为什么输出不是 1?
最佳答案
引用就像对原始项目进行寻址。像 *(& 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;
关于c++ - 难以理解引用定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19150307/