当已经存在相同名称的全局变量和局部变量时,如何访问变量(C ++)?

尤夫拉·辛格·贾登

这是代码:

#include <iostream>
using namespace std;
int x = 1;
void fun()
{
    int x = 2;
    {
       int x = 3;
       cout<<::x<<endl;
    }
}
int main()
{
    fun();
    return 0;
}

我想知道的是,有什么方法可以在函数fun内的大括号中访问值为2的x。当我写x时,它显示3,而:: x时,它显示1。因此,如何访问具有值2的x,以及如何将其称为全局变量或局部变量。

谢谢

编辑1:只问知识,想知道这种事情是否可能。

格扎

我想知道的是,有什么方法可以在函数fun内的大括号中访问值为2的x。

无法访问它。唯一可以访问它的“ hack”是:

int x;
{
    int &xOuter = x;
    int x;
    // use xOuter here to access x of outer scope
}

我们称之为全局变量还是局部变量。

这是一个局部变量。

我建议您反对这种做法,因为这会造成混乱。为了避免这种情况,请使用gcc之类的编译器选项-Wshadow来针对此类情况发出警告。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C:同名的全局变量和局部变量

如何在C中访问具有相同名称的局部变量和全局变量

C#中存在具有相同名称的局部变量时,如何在函数中更改全局变量的值

C ++中的全局变量和局部变量

分配与全局变量同名的局部变量时出错

Bash:使用具有相同名称的局部变量隐藏全局变量

使用相同名称的局部变量和全局变量了解输出

具有相同名称的局部变量和全局变量及其工作方式?

R中的全局变量和局部变量

Python类中的全局变量和局部变量

全局变量和局部变量之间的差异

Python混合全局变量和局部变量?

全局和局部变量

声明数组指针时,全局变量和局部变量有什么区别?

如何消除具有相同名称的局部静态变量和全局变量的歧义

当“全局”,“本地”和“非常本地”变量存在相同名称时,如何访问“本地”变量

如何在节点js中分配全局变量和局部变量

如何在python中的字符串中插入全局变量和局部变量

Java中的局部变量与全局变量同名

引用与Python中的局部变量同名的全局变量

类变量,成员变量和局部变量,全局变量之间的区别

如果全局变量中存在相同的变量,如何访问匿名名称空间变量

如果内部函数已经具有相同名称的变量,则如何从内部函数访问封闭函数中的非局部变量

如何更改与 Rebol 或 Red 中的局部变量同名的全局变量?

全局和局部变量分配

全局和局部变量JavaScript

更改全局和局部变量

Python 全局和局部变量:代码是如何工作的?

如何创建动态全局和局部变量?