静的変数の初期化

静的オブジェクトの初期化を、定数式、 またはすでに extern または static と宣言されているオブジェクトのアドレスに変換する式 (多くは定数式によって修正される) によって行えます。静的 (または外部) 変数を明示的に初期化しない場合、それがポインターでなけれ ば、その初期値は、該当する型の値ゼロになります。その変数がポインターの場合は、NULL に初期化されます。

ブロック内の static 変数は、プログラムの実行前に一度だけ初期 化されます。一方、初期化指定子を持つ auto 変数は発生するごとに初期化されます。

C++ クラス型の静的オブジェクトは、それを初期化しない場合は、 デフォルトのコンストラクターを使用します。初期化されない自動変数およびレジスター変数は、未定義の値を持つことになります。