【问题标题】:Modifying reference variables, not the variable they alias [duplicate]修改参考变量,而不是它们别名的变量[重复]
【发布时间】:2012-09-13 19:38:53
【问题描述】:

可能重复:
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++语言有什么工具可以让我完成这个吗?

【问题讨论】:

  • 您“知道”的内容可能并不真实。指针是指针,引用是引用。它们是不同的东西。

标签: c++ reference


【解决方案1】:

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

此外,它是语言的一个功能,无法重新定位引用。可重新定位的引用是一个指针。

【讨论】:

    【解决方案2】:

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

    您需要切换到指针。

    【讨论】:

    • 那篇文章说典型的编译器在内部将其实现为指针。仍然“按设计”回答了我的问题。
    猜你喜欢
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 2013-03-23
    • 2015-10-01
    • 2023-03-28
    相关资源
    最近更新 更多