>> C言語入門トップに戻る
今回はグローバル変数とスコープについて説明します。
今までは変数は全て関数内に書いていましたが、
関数の外に書くこともできます。
これを実行するとこのようになります。
このような変数をグローバル変数と言います。
この変数には次の特徴があります。
・宣言時に自動的に0かNULLに初期化される。
・同じファイルのどの関数からもアクセスできる。
・プログラム終了まで値が保持される。
上記の実行結果を見てもらっても分かるとおり、
初期値を設定していない状態で、test++と1を足していますが、
ちゃんと1と表示されています。
また、func関数内でもtest++とグローバル変数にアクセスできています。
そして、func関数を実行した後は、ちゃんと1が足され、
2と表示されています。
もしfunc関数内で定義していた場合は、
その関数内だけでしか使うことが出来ず、また関数の処理が終了したらその変数は消えてしまいます。
この限られた範囲のことをスコープと言います。
前にも少し言いましたが、関数内でfor文等を書き、そこで変数を宣言した場合は、
その変数はそのfor文の中でしか使えません。
この仕組みがスコープです。
グローバル変数とスコープの意味を理解できましたでしょうか?
グローバル変数は共有したい値を保存するときによく使われます。
今回の説明は以上です。
次回は定数について説明します。
>> 【定数について】に進む
>> C言語入門トップに戻る
グローバル変数とスコープについて
今までは変数は全て関数内に書いていましたが、
関数の外に書くこともできます。
#include <stdio.h> int test; void func(void); int main(void) { test++; printf("%d\n",test); func(); printf("%d\n",test); return 0; } void func(void){ test++; }
これを実行するとこのようになります。
このような変数をグローバル変数と言います。
この変数には次の特徴があります。
・宣言時に自動的に0かNULLに初期化される。
・同じファイルのどの関数からもアクセスできる。
・プログラム終了まで値が保持される。
上記の実行結果を見てもらっても分かるとおり、
初期値を設定していない状態で、test++と1を足していますが、
ちゃんと1と表示されています。
また、func関数内でもtest++とグローバル変数にアクセスできています。
そして、func関数を実行した後は、ちゃんと1が足され、
2と表示されています。
もしfunc関数内で定義していた場合は、
その関数内だけでしか使うことが出来ず、また関数の処理が終了したらその変数は消えてしまいます。
この限られた範囲のことをスコープと言います。
前にも少し言いましたが、関数内でfor文等を書き、そこで変数を宣言した場合は、
その変数はそのfor文の中でしか使えません。
この仕組みがスコープです。
グローバル変数とスコープの意味を理解できましたでしょうか?
グローバル変数は共有したい値を保存するときによく使われます。
今回の説明は以上です。
次回は定数について説明します。
>> 【定数について】に進む
>> C言語入門トップに戻る