#include "iostream"
using namespace std;
int d = 10;
int hoge(){
int c = 1;
return c;
}
int main(){
int c = 2;
cout << hoge() << endl;//こちら側でのc=2という定義は無視され、出力結果は1となる。
if(c == 2){
int c = 3;//再定義されていると警告されることがあるが、プログラム実行時に問題はない。
cout << c << endl;//c=3という定義が優先される。出力結果は3。
}
cout << c << endl;//{}内に書いてあるc=3という定義は{}外なので無視され、出力結果は2となる。
cout << d << endl;//出力結果は10。
}
変数スコープとは変数が使える範囲の事を指します。
基本的に、{}内で定義された変数は{}内でしか使用できません。
また、関数を呼び出すとその関数内では関数内で定義したものしか使用できません。