Delphiの変数の初期化を行わなかった場合、変数の値にはどのような値が入るのでしょうか?

提供: Support
移動先: 案内検索

質問

Delphiの旧バージョンからプロジェクトをマイグレーション(移行)を行っています。 例えば、boolean型、integer型等の変数に関して、もしプログラマが明示的に初期化を行わなかった場合、 これらの変数にはどのような値が入るのでしょうか?

回答

エンバカデロのdocwiki のこちらに記載されておりますが、グローバル変数の初期化が保証されています。


例えば、Boolean型はfalse、Char型やIntegerなどのプリミティブ型は0、そしてクラスのメンバーなど、ポインタで参照されている変数はnilに初期化されます。


ただし、ローカル変数に関しては、変数の値は不定で、初期化は保証されておりません。


そのためローカル変数をif文などの判定処理に使用している場合は、明示的にローカル変数を意図した値に初期化してご使用ください。

関連情報