::i 在下面的程序中是什么意思?
#include<iostream>
using namespace std;
int i = 10;
int main(){
int i = 20;
{
int i = 30;
cout << i << ::i <<endl;
}
}
它输出“3010”。 "::i"似乎指的是全局声明。具体是什么意思?
最佳答案
它被称为合格名称查找。
它引用在全局范围内声明的变量i
。
简单地说,这意味着不要引用局部变量 i
(如果有),而是在全局范围内引用 i
。
只要在局部作用域中有相同命名的变量,当引用变量名时,优先考虑局部作用域中的变量。这意味着在您的程序中,局部作用域 {
}
中的 i
隐藏了所有其他名为 i
的变量,即那些(i=20
以及 i=10
)。因此,要引用全局范围内的 i
,您可以使用 ::
范围解析运算符。=
关于c++ - "::' 变量'"指的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7065637/