c++ - 有没有办法访问隐藏在另一个范围内的局部变量的值?

标签 c++ scope

我知道如果一个变量是全局的,你总是可以通过在变量名前面加上 ::... 来访问它的值...但是有没有办法访问局部变量的值已经隐藏在另一个范围内?

我在想这样的事情:

void f() {
    int x = 1;
    {
        int x = 2;
        //access the value of the variable x (with the 1 in it) inside here
    }
}

如果语言不支持这个,那么我完全可以接受一些 hacky 解决方案。

最佳答案

可以将外部 x 的地址分配给一个指针对象,然后通过内部作用域中的指针引用它(假设您没有隐藏它的另一个同名指针对象) .

或者,只要您正在编辑代码,就可以更改名称

关于c++ - 有没有办法访问隐藏在另一个范围内的局部变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7047621/

相关文章:

c++ - 如何制作透明代理模型: QAbstractProxyModel?

Julia 变量的范围 : re-assigning within a loop in open expression

javascript - 使用 JavaScript 将 var res 更改为给定数组的最大值

scope - 当声明符(我的/状态)在 for block 中时会发生什么?

C++ undefined reference (静态成员)

c++ - 非字节偏移使用 off_t 合适吗?

javascript - 隔离指令范围但保留对 ngModel 的绑定(bind)

c - 嵌套范围变量的异常行为

c++ - QCustomPlot 海量数据绘图

c++ - 返回字符串 vector 的最简单的 lua 函数