做C++;引用始终指向同一对象?那么这个具体的案例呢? 我是一个学习C++的人,有一个关于参考文献的问题,如果它太简单,就很抱歉。引用总是被解释为“不可变”,因为它们“总是指向同一个对象”。否则,您将无法为其分配任何新内容。例如: int x; // an int int &refX = x; // reference to x refX = 5; // here, a new `int` object gets instantiated and overwrites x

做C++;引用始终指向同一对象?那么这个具体的案例呢? 我是一个学习C++的人,有一个关于参考文献的问题,如果它太简单,就很抱歉。引用总是被解释为“不可变”,因为它们“总是指向同一个对象”。否则,您将无法为其分配任何新内容。例如: int x; // an int int &refX = x; // reference to x refX = 5; // here, a new `int` object gets instantiated and overwrites x,c++,pointers,reference,C++,Pointers,Reference,因此,refX不再指向同一对象!我想一个更正确的定义是它总是指向同一个地址位置。这是正确的吗?在本例中,它的行为非常类似于常量*,只是您不必使用*运算符。我错过什么了吗 谢谢大家! 我通常认为引用是另一个对象的别名。如果将此应用于人,则别名是昵称 例如,如果您有: Person Robert; Person& Bob = Robert; 你只有一个人,但你有时叫他罗伯特,有时叫他鲍勃。但他还是那个人 试图把鲍勃的地址牵扯进来只会让事情变得更难。我发现在抽象层次上只考虑引用是比较容

因此,refX不再指向同一对象!我想一个更正确的定义是它总是指向同一个地址位置。这是正确的吗?在本例中,它的行为非常类似于常量*,只是您不必使用*运算符。我错过什么了吗


谢谢大家!

我通常认为引用是另一个对象的别名。如果将此应用于人,则别名是昵称

例如,如果您有:

Person   Robert;
Person&  Bob = Robert;
你只有一个人,但你有时叫他罗伯特,有时叫他鲍勃。但他还是那个人


试图把鲍勃的地址牵扯进来只会让事情变得更难。我发现在抽象层次上只考虑引用是比较容易的——对于相同的事物,两个名字。

它仍然指向它所做的记忆中的同一个地方。该位置的值被覆盖,引用没有更改。在这种情况下,
x=5
refX=5
我想我只能勉强理解您试图问的问题,但感觉您的解释不太正确。您无法在任何情况下以任何代价更改变量的地址,你可以随时更改它指向的内容。如果您谈论的是指向的地址或变量本身的地址,可能需要澄清一下?是的!这完全正确。对不起,说得不清楚,英语不是我的第一语言。所以它不是总是指向同一个对象,而是指向同一个内存位置?我想你的问题是object这个词的用法。“同一个物体”是什么意思?即使通过引用将5指定给int,它仍然是相同的int,只是值不同。