Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語における静的変数のデフォルト値とは?初期化の仕組みを解説

C言語の静的変数とは

static キーワードが付けられた変数、データメンバー、関数は、プログラムの生存期間全体にわたってメモリが確保され、以後再び変更されることはありません。また、静的関数はクラス名を用いて直接呼び出すことが可能です。

静的変数は一度だけ初期化され、コンパイラはプログラムが終了するまでその変数を保持し続けます。静的変数は関数の内外どちらでも定義できますが、定義されたブロックに対してローカルな性質を持ちます。静的変数のデフォルト値はゼロであり、プログラムの実行が終了するまで存続します。

静的変数の構文

C言語における静的変数の宣言方法は以下の通りです。

static datatype variable_name;

各要素の意味は次のとおりです。

  • datatype − int、char、float など変数のデータ型を指定します。
  • variable_name − ユーザーが自由に決められる変数名です。
  • value − 変数を初期化するための任意の値です。省略した場合のデフォルト値はゼロになります。

サンプルプログラム

以下は、C言語における静的変数の使用例です。

#include <stdio.h>
int main() {
   static int a;
   int b;
   printf("Default value of static variable : %d\n", a);
   printf("Default value of non-static variable : %d\n", b);
   return 0;
}

出力結果

Default value of static variable : 0
Default value of non-static variable : 0

プログラムの解説

上記のプログラムでは、静的変数と非静的変数の2つの変数を宣言し、それぞれのデフォルト値を出力しています。

static int a;
int b;
printf("Default value of static variable : %d\n", a);
printf("Default value of non-static variable : %d\n", b);

実行結果から分かるように、静的変数も非静的変数も、明示的に初期化しない場合はいずれも 0 というデフォルト値で初期化されます。特に静的変数はプログラム開始時に一度だけ初期化されるため、関数が何度呼び出されても値が保持されるという特徴があります。

  1. Bashの変数の基本:設定・削除・子プロセスへの渡し方を実例付きで解説

    コンピュータサイエンス(そして日常的なコンピューティング)において、変数とは、後で使う情報を一時的に保持しておくメモリ上の場所のことです。言い換えれば、データを入れたり取り出したりするための一時的な保管容器です。Bashシェルでは、そのデータは単語(コンピュータ用語では「文字列」)でも数値(「整数」)でも構いません。 パソコンで意識的に変数を使ったことがない人でも、生活の中では変数に相当するものを使っているはずです。「あれを取って」「これを見て」といった言葉は、文法上の変数(代名詞)です。「これ」や「あれ」が何を指すのかは、話し手が頭の中で思い浮かべているものや指差している対象によって決まりま

  2. 【初心者向け】PowerShellの変数の基本:作成・確認・削除・追加の方法をわかりやすく解説

    コンピュータサイエンスにおいて、変数とは後で利用するために任意の情報を格納しておくメモリ上の場所のことです。言い換えれば、データを一時的に保存し、必要なときに取り出すための「入れ物」です。シェル環境では、そのデータは単語(文字列)でも数字(整数)でも構いません。 パソコンで意識的に変数を使ったことがない人でも、日常生活の中で変数に近いものを使っているはずです。「あれを取って」「これを見て」といった言葉は、文法上の変数(いわゆる代名詞)と言えます。「これ」「あれ」が何を指すのかは、話し手が頭に思い浮かべているものや指差している対象によって決まります。数学でも未知の値を記号で表しますが、それも立派