修改引用变量,而不是它们别名的变量

时间:2012-09-21 11:24:27

标签: c++ reference

  

可能重复:
  C++ Reference, change the refered variable

我知道c ++中的引用只是在你使用它们时会被解除引用的指针。这个问题是关于如何访问底层指针并进行更改。

考虑以下代码:

int x;
int& x_ref = x;              //now equivalent to x
int* x_ptr = &x;         //stores address of x
int* x_ref_ptr = &x_ref; //ALSO stores address of x

int&* x_ref_ptr_ref = ???; //what would this mean?

我正在尝试更改初始化后参考点的位置。我不关心类型安全或正确的做法。 c ++语言是否有任何工具可以让我实现这个目标?

2 个答案:

答案 0 :(得分:5)

没有指向引用的指针,它是不正确的。引用是对象的别名。指向别名的指针如何工作?

此外,该语言的功能无法重新设置引用。可重新引用的引用是一个指针。

答案 1 :(得分:0)

这不可能按设计。通过使用引用而不是指针,您决定在声明之后永远不会更改其目标,具有所有必然的缺点和优点(其中一个是“自动解除引用”。请仔细阅读Wikipedia entry on references

您需要切换到指针。