#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;
}
输出是:
30
10
我不明白为什么“::d
”会给出10?有人可以向我解释一下吗?
答案 0 :(得分:14)
::d
表示来自全局命名空间的d
编辑:有三个不同的变量具有相似的名称d
。一个位于全局命名空间d=10
中,一个位于main
函数(20
)的范围内,最后一个位于主函数(30
)的内部块内。
在每个块中,您可以(通过名称)访问相应的变量和,始终可以访问全局命名空间(::
)。