C++のグローバル変数とローカル変数の違いを完全解説!初心者でもわかる基本と使い分け
生徒
「C++の変数って、どこに書くかで意味が変わるんですか?」
先生
「変わります。特にグローバル変数とローカル変数は、使える範囲が大きく違います。」
生徒
「パソコン初心者でも理解できるように説明してもらえますか?」
先生
「家や部屋に例えながら、順番に説明していきましょう。」
1. 変数とは何かをおさらい
C++における変数とは、数値や文字などのデータを一時的に入れておく箱のような存在です。 プログラムの中で何度も使う情報を、名前を付けて保存しておくことで、計算や表示ができるようになります。
例えば、年齢や点数のように変わる可能性のある情報は、変数として扱います。 この変数には、使える範囲があり、その違いによってグローバル変数とローカル変数に分かれます。
2. ローカル変数の特徴
ローカル変数とは、特定の場所の中だけで使える変数のことです。 主に関数や中かっこで囲まれたブロックの中で作られます。
例えるなら、ローカル変数は自分の部屋に置いてある私物です。 その部屋の中では自由に使えますが、部屋を出ると使えなくなります。
#include <iostream>
int main() {
int score = 80;
std::cout << score << std::endl;
return 0;
}
80
この例では、scoreはmain関数の中で作られたローカル変数です。 main関数の中では使えますが、外からは見えません。
3. グローバル変数の特徴
グローバル変数とは、プログラム全体から使える変数のことです。 関数の外、プログラムの一番上の方に書かれます。
家全体に置いてある共用の物のようなイメージです。 どの部屋からでも使えるので、とても便利に見えます。
#include <iostream>
int count = 0;
int main() {
count++;
std::cout << count << std::endl;
return 0;
}
1
このcountはグローバル変数なので、どの関数からでも使うことができます。 プログラムが始まってから終わるまで、ずっと存在し続けます。
4. 同じ名前の変数がある場合
グローバル変数とローカル変数は、同じ名前を付けることもできます。 ただし、その場合はローカル変数が優先されます。
#include <iostream>
int value = 10;
int main() {
int value = 5;
std::cout << value << std::endl;
return 0;
}
5
この例では、main関数の中のvalueが使われます。 グローバル変数のvalueは一時的に見えなくなります。
この仕組みを知らないと、思った通りに動かない原因になります。
5. グローバル変数とローカル変数の使い分け
初心者のうちは、基本的にローカル変数を使うことを意識すると良いです。 必要な場所だけで使うことで、プログラムが分かりやすくなります。
グローバル変数は便利ですが、どこからでも変更できてしまうため、 プログラムが大きくなると混乱の原因になります。
まずは、変数には使える範囲があること、 グローバル変数とローカル変数では役割が違うことを理解することが大切です。 この基本を押さえることで、C++の変数とデータ型の理解が一段深まります。