问一个变量作用域的问题
1.变量作用域是声明所在的作用域还是定义所在的作用域?
2.
extern int i;
int main()
{
{
int i=1;
cout<<i<<endl;
}
cout<<i<<endl;
}
这么写的话,第二句cout报错,我想问的是:int i=1这句话,是把开头声明的那个i给定义了呢,还是声明+定义了一个局部变量,屏蔽了外面声明的那个i?
凌乱了……
[解决办法]
1. 声明和定义的作用域要一致。
2. “屏蔽”