前提・実現したいこと
C言語を学習しています。
C言語で変数の初期化について学んでいるのですが、浮動小数点数のメモリを0で埋めたときの結果について
どうしても理解できないところがあります。
学習しているのに使用している教材は教本であったり、ネットの情報だったりするんですが、その中で
ちょくちょく下記のような表現で浮動小数点数のメモリを0で埋めたときの動作が説明されています。
「メモリーを0で埋めても、必ずしも値として0になるとは限らない。
int型など整数型は、殆どの環境で期待通りに動作する。char []などの文字列型の場合も、殆どの環境で問題なく、このため多くの場合、この方法がよく使われている。
しかしfloatやdoubleなど浮動小数点数の場合、メモリーを0で埋めても意図した結果にはならない。メモリーを初期化せずに使っているのと同じ現象が発生してしまう。」
上記の説明でわからない点は以下2点の部分です。
・メモリーを0で埋めても、必ずしも値として0になるとは限らない。
・floatやdoubleなど浮動小数点数の場合、メモリーを0で埋めても意図した結果にはならない。メモリーを初期化せずに使っているのと同じ現象が発生してしまう。
なぜfloatやdoubleなど浮動小数点数の場合、メモリを0で埋めても意図した結果にはならないのでしょうか。
そもそも意図した結果というのはfloatやdoubleなど浮動小数点数のメモリーを0で埋めたら、その値は0になることだと思うのですが、
では、その意図していない動作結果というのはどういうものを指しているのでしょうか。
このあたりが自力では解決できず困っています。
もしよければアドバイス等頂けないでしょうか。
よろしくお願いいたします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー