C言語の静的変数の特徴
C言語の静的変数は、下記の特徴を持っています:
- 長寿命:静的変数はプログラムの実行中常に存在し、関数の呼び出しでは消滅しません。その値は関数の呼び出しの間で変わりません。
- 静的変数は宣言された関数のスコープ内に限定され、外部関数からはアクセスできません。関数が呼び出されると静的変数にメモリ空間が割り当てられますが、関数呼び出しが終了するとメモリ空間は解放されません。
- 最初に値が代入されるだけで、静的変数は関数に初めて入ったときにだけ代入され、その後はプログラムが終了するまで値が保たれます。
- 静的変数のストレージはプログラム実行中もスタック上に確保されるのではなく、静的記憶域に維持されています。静的記憶域は、プログラム実行前に確保され、最後に解放されます。
まとめると、static変数は、寿命が長く、スコープがローカル、初期値は1度だけ代入され、静的記憶域に格納されるという特徴を持っています。