2017-09-29 11 views
2

私は、C++でieeefloat64変数を初期化しないと何が起こるのか知りたいです。ieeefloat64変数がC++で初期化されていないとどうなりますか?

IEEE_FLOAT64 x; 
cout << x; 

今のところ、-9.255963E + 061として出力されています。これはランダムなジャンク値ですか?

+1

(IEEE_FLOAT64が自身を初期化するデフォルトのコンストラクタを持つクラスでない場合)未定義の動作が発生します。 – geza

+1

'IEEE_FLOAT64'とは何ですか?どのように定義されていますか? – NathanOliver

+0

IEEE_FLOAT64は、IEEE標準の下で定義されたデータ型であり、倍精度を提供し、ハードウェア浮動小数点として使用されます。@ NathanOliver –

答えて

1

コンパイラによって異なります。 Visual C++は、デバッグモードの場合は0に初期化しますが、リリースモードの場合は初期化されません。

初期化されていない値は何でもかまいませんので、しないでください。

+0

私は-9.255963E + 061になっています。この価値はどういう意味ですか? これは迷惑な値ですか? –

+0

はい。それはあなたがそれを設定していないからです。変数がそのメモリを割り当てられる前に、今まで何が起こったのかをあなたは知っています。 'IEEE_FLOAT64 x(0);'は問題を解決します。 –

+0

しかし、そのランダムなジャンク値なら、私はなぜアプリケーションを実行するたびに同じ値を得るのですか? –

関連する問題