C言語における静的変数の特性

C 言語の静的変数の特性として、以下のようなものが挙げられます。

  1. 静的変数は定義した関数の内部にスコープが限定されますが、関数呼び出しが終了した後も存在し続け、値が保持され、次回呼び出したときも使用できます。
  2. 静的変数のライフタイムは、プログラムの起動からプログラムの終了まで存在し、関数の呼び出しが終わった後も残り続けます。
  3. 静的変数は、プログラムでの実行中一度のみメモリ空間が確保され、関数呼び出し毎に再び確保されることはありません。
  4. 静的変数の初期化は1度だけ行われ、その変数を定義した関数に初めてアクセスした際に初期化され、それ以降関数にアクセスしても初期化は行われません。
  5. 静的変数はデフォルトでは 0 で初期化され、定義時に明示的に初期化を行った場合は、明示的に初期化した値が適用されます。
  6. staticな変数は同じ名前のローカル変数が定義されていても、関数の外側の他の関数からは参照できないため、衝突が発生しません。
  7. 同一の静的変数が複数の関数内で定義されている場合、それらは実際には異なる変数であり、独立してそれぞれの値を維持します。
bannerAds