我知道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 ++语言是否有任何工具可以让我实现这个目标?
答案 0 :(得分:5)
没有指向引用的指针,它是不正确的。引用是对象的别名。指向别名的指针如何工作?
此外,该语言的功能无法重新设置引用。可重新引用的引用是一个指针。
答案 1 :(得分:0)
这不可能按设计。通过使用引用而不是指针,您决定在声明之后永远不会更改其目标,具有所有必然的缺点和优点(其中一个是“自动解除引用”。请仔细阅读Wikipedia entry on references。
您需要切换到指针。