c++ - 如何访问另一个本地的本地变量?

标签 c++ visual-c++

<分区>

最近在学习C++语言。

我一直想知道如何在 local area[2] 访问 local area[1] 的局部变量“a”,看下面的代码。

怎么做?

#include "stdafx.h"
using namespace std;

///// global area /////
int a = 1;

int _tmain(int argc, _TCHAR* argv[])
{
    ///// local area[1] /////
    int a = 2; //<= how to access this "a" at local area[2]?

    cout << "global area [a] : " << ::a << endl;
    cout << "local area[1] [a] : " << a << endl;
    {
        ///// local area[2] /////
        int a = 3;
        cout << "global area [a] : " << ::a << endl;
        cout << "local area[2] [a] : " << a << endl;
        cout << "local area[1] [a] : " << ?????? << endl;
    }

    return 0;
}

最佳答案

你不能这样做。当您在内部作用域中声明一个变量时,它会遮蔽外部作用域的变量,并且该语言不提供任何访问它的方法,就像它对全局变量所做的那样。

即使它确实支持这一点,但将您的变量命名为相同的做法仍然是不好的做法。想象一下必须处理大量范围和所需的复杂性!

简单地为中间变量使用不同的变量名,这使得代码的编写和维护都更加容易。

关于c++ - 如何访问另一个本地的本地变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23647364/

相关文章:

C++,如何使用所有类型的子集

c++ - 项目符号 |刚体翻译正确但打印位置错误

c++ - 将 Windows 视觉主题与 Code::Blocks 一起使用?

java - 将 .mm 文件转换为 java 可读形式

c++ - 在 C++ 中为链表创建复制构造函数/函数

c++ - 有关队列和单链表的帮助吗?

c++ - VS2008 : Can I build a project with 2 CPP files of the same name in different folders?

c++ - 即使使用#include <Shlobj.h> 和#pragma 注释(lib, "Shell32.lib")也无法调用 SHGetKnownFolderPath()

c++ - 启动服务器时出现 std::exception (WinSock2)

c++ - 创建一个可以运行的DLL