为什么x的最后一个值没有改变?

问题描述 投票:0回答:1
#include <iostream>

namespace first
{
    int x = 1;
}

namespace second
{
    int x = 2;
}

int main()
{
    int x = 0;
    
    std::cout <<x<<'\n';
    std::cout <<first::x<<'\n';
    std::cout <<second::x<<'\n';
    
    using namespace first;

    std::cout <<x<<'\n';
}


当我运行代码时,答案将是0

1    
2    
0

我不明白为什么在首先使用命名空间之后,<std::cout 的答案不会是1

arduino namespaces arduino-c++
1个回答
1
投票

因为最后一个cout中使用了局部x变量。同名的局部变量会影响全局变量。

© www.soinside.com 2019 - 2024. All rights reserved.