Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ &引用;::&引用;变量名c++; #包括 使用名称空间std; int d=10; int main() { int d=20; { int d=30; cout_C++_Variables_Scope - Fatal编程技术网

C++ &引用;::&引用;变量名c++; #包括 使用名称空间std; int d=10; int main() { int d=20; { int d=30; cout

C++ &引用;::&引用;变量名c++; #包括 使用名称空间std; int d=10; int main() { int d=20; { int d=30; cout,c++,variables,scope,C++,Variables,Scope,::d表示来自全局命名空间的d 编辑:有三个不同的变量具有相似的名称d。一个位于全局命名空间d=10,一个位于main函数(20)的范围内,最后一个位于main函数的内部块内(30) 在每个块中,您可以(通过名称)访问相应的变量,并且始终可以访问全局名称空间(通过:)。但是存在“d=20”,为什么它不更改为其值?@brahimYazıcı在该代码中有三个作用域级别。全局作用域,main()中的作用域以及最内层{}中的作用域。您在该程序中声明了三个独立的变量。这些变量并不是您一直在重新分配值的对象

::d
表示来自全局命名空间的
d

编辑:有三个不同的变量具有相似的名称
d
。一个位于全局命名空间
d=10
,一个位于
main
函数(
20
)的范围内,最后一个位于main函数的内部块内(
30


在每个块中,您可以(通过名称)访问相应的变量并且始终可以访问全局名称空间(通过
)。

但是存在“d=20”,为什么它不更改为其值?@brahimYazıcı在该代码中有三个作用域级别。全局作用域,main()中的作用域以及最内层{}中的作用域。您在该程序中声明了三个独立的变量。这些变量并不是您一直在重新分配值的对象。@qehgt虽然您是正确的,但如果您深入了解范围规则以及该段代码中实际发生的情况,可能会对遇到此问题的其他人非常有帮助。@Andrew Finnell感谢您的评论,我增加了更多的解释。因为C++组想使一种语言如此复杂和混乱,他们将确保他们的极端小时费率从现在起,因为他们将是唯一的一个能够对软件工作…(SNARK SNARK)。同样的原因,为什么<代码>文件。TXT < /C> >不与<代码> \子目录\文件.txt < /C> >相同。
#include <iostream>

using namespace std;

int d = 10;

int main()
{
    int d = 20;

    {
        int d = 30;
        cout << d << endl << ::d; // what does it mean?
    }

    return 0;
}