我有以下代码:
int main() {
int x = 3;
int &ref = x;
int &ref2 = ref;
ref = 100;
std::cout <<ref;
std::cout <<ref2;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这打印出来100和100。我觉得很混乱。我的理解是,ref和ref2都是对底层对象 ( x=3) 的引用。然后我们改变 的值ref。因此,我预期100和3。
我的理解是 ref 和 ref2 都是对底层对象的引用 (x=3)
是的。
好吧,它们都是对 的引用x,其初始值为3。本质上,您有一个整数对象,您可以通过名称中的任何名称来引用它x,ref或者ref2。
然后我们改变 ref 的值
不,你是在自相矛盾。
对象有值。参考喜欢ref不是对象,但对象的引用,他们不具有自己的价值变动。
你说这ref是一个引用,这是真的——它是一个对 int 类型对象的引用,它可以接受一个值,当你写ref = 100. 该名称x,ref并且ref2还指的是相同的整数对象之后,但现在它的价值是100不是3。
您不能重新设置引用(使其引用不同的对象),并且引用没有要更改的值。它引用一个对象,它的值可以通过引用改变。
注意。我不认为这个问题与Can we reassign the reference完全相同,即使它包含一些相同的误解。
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |