■C++を学ぼう!
「C++を学ぼう!」では、C++の初心者をターゲットにC++言語を体系的に学べるようにサイトを構築しています。
管理人もC++を学びながら作っていますので、分かり難い点などあればご指摘下さい。

▼スポンサードリンク
■メニュー

(C)あいねこの館

文章などの改変・利用は禁止します
スコープ

スコープとは?
スコープとは、その名前がどの範囲で使えるかを表します。main関数で宣言した変数を、他の関数からそのまま使えることは 出来ません。
void test(){
	hogehoge = 1;
}

int main(){
	int hogehoge = 4;
}

詳細には{}内で区切られた範囲がローカル変数となります。
#include <iostream>

using namespace std;

//int関数test
int main(){

	int a = 1;
	cout << a << endl;


	{
		int a = 4;
		cout << a << endl;
	}

	cout << a << endl;

}
実行結果は以下の通りです。
1
4
1
但し関数の変数はローカル変数として定義することは出来ません。

グローバル変数
グローバル関数とはどの場所からでも呼び出すことが出来ます。


#include <iostream>

using namespace std;

int a = 50;

int test(){

	cout << a <<endl;
	return 0;
}

int main(){

	cout << a << endl;
	test();

	getchar();
}
実行結果は以下の通りです。
50
50
また、グローバル変数で付けた名前はローカルにも再度定義することが出来ます。優先順位はローカル変数>グローバル変数となります。 ローカル変数を使用したのにグローバル変数を用いたい時は、::の2つのコロンを用います。

#include <iostream>

using namespace std;

int a = 50;

int main(){

	//グローバル変数のaを表示する
	cout << a <<endl;

	int a = 10;

	//ローカル変数のaを表示する
	cout << a << endl;

	//グローバル変数のaを表示する
	cout << ::a << endl;

}
実行結果は以下の通りです。
50
10
50