Delphiの変数の初期化を行わなかった場合、変数の値にはどのような値が入るのでしょうか?
質問
Delphiの旧バージョンからプロジェクトをマイグレーション(移行)を行っています。 例えば、boolean型、integer型等の変数に関して、もしプログラマが明示的に初期化を行わなかった場合、 これらの変数にはどのような値が入るのでしょうか?
回答
エンバカデロのdocwiki のこちらに記載されておりますが、グローバル変数の初期化が保証されています。
例えば、Boolean型はfalse、Char型やIntegerなどのプリミティブ型は0、そしてクラスのメンバーなど、ポインタで参照されている変数はnilに初期化されます。
ただし、ローカル変数に関しては、変数の値は不定で、初期化は保証されておりません。
そのためローカル変数をif文などの判定処理に使用している場合は、明示的にローカル変数を意図した値に初期化してご使用ください。