記憶クラスの話は、関数(サブルーチン)を使わないと御利益がない。そこで、本日はこの
プリントを読む程度にとどめるのが良いだろう。関数の学習の時に、ちゃんと説明する。
変数には宣言をする場所によりローカル変数とグローバル変数がある。
- ローカル変数
- 関数の外で宣言され、その関数の中だけで使用できる。関数がコー
ルされるとメモリー上に変数が配置される。その関数の処理が終
わるとその変数は消滅する。通常、よく使われる。
- グローバル変数
- 関数の外で宣言され、どの関数でも使用できる。プログラムが
起動されるとメモリー上に変数が配置される。プログラムが終了
するまで、変数は維持される。
教科書のp.69の図6-1を見て欲しい。ここでは、こんなものがあると思うだけでよい。関
数の時にもう少し分かりやすく説明する。ただ、グローバル変数はできるだけ使わない方
が良い。プログラムの独立性が低くなるし、非常に分かりづらいバグが発生することがあ
る。この意味については、もう少しプログラムに馴れれば理解できるであろう。
この授業で諸君は、グローバル変数を使うプログラムを書くことはほとんどないであろう。
静的変数は、変数宣言の前に
static と付ければ良い。一方、今まで学習してきた変数は
staticが無いので、自動変数である。それらの違いは、次に通りである。
- 自動変数
- 関数内でのみ値を保持する。関数の動作が終わると、メモリーの解放
され、その値は2度と使えない。新たにその関数をコールすると、新た
にメモリーを確保する。この場合、前の場所と同じとは限らない。
- 静的変数
- プログラムが起動されたときにメモリーが確保され、プログラムが終
了するまでそれが維持される。
この授業で諸君は、グローバル変数を使うプログラムを書くことはほとんどないであろう。
ホームページ:
Yamamoto's laboratory著者:
山本昌志
yamamoto masashi
平成17年5月14日