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