各スペースは、独自の名前を持ち、異なるスコープで同じ名前が異なるエンティティを指すことがあります。
-
スコープ:{}は、通常分離されています。
-
有効面積は、宣言が完了している最後に文の名前の名で始まりました。
#include<iostream>
using namespace std;
int main() { int i = 10; for (int j = 0;j <= 10;j++) { } }
- 主なブレースは、グローバルスコープ(グローバルスコープ)で、前に定義されました。
- 私は最初から私はそれにアクセスすることができ、メイン関数の最後まで、主な機能の範囲内で定義されていますが、主な機能は、訪問することができません。
- forループでjは、forループJにアクセスすることはできません。
ネストされたスコープ
-
スコープと呼ば含まれています
内层作用域(inner scope)
。 -
呼ばれる他のスコープのスコープが含まれています
外部作用域(outer scope)
。 -
内部スコープを許可すると、既存の外側のスコープ名を再定義します。
#include<iostream>
using namespace std;
int a = 10; int main() { cout << a << endl; // (1)输出10 int a = 0; cout << a << endl; // (2)输出0 cout << ::a << endl; // (3)输出10 system("pause"); return 0; }
- (1)出力10、グローバルドメインで定義されています。
- (2)出力は、ローカル変数、再定義された範囲の、出力電流の再定義の後に起こります。
- (3)によって定義されたグローバルスコープの出力(範囲は空のままにされ、要求は、グローバルスコープを発生します)。
転送浮遊マーモットブログ、元のリンクします。https://www.jianshu.com/p/b768a90568b4