forループ内でnの値がガベージに変わるのはなぜですか? (私は C 言語が初めてで、C++ のバックグラウンドを持っています)
float n = 3.0;
printf ("%f\n", n);
for (; n <= 99.0; n += 2)
printf ("%f\n", &n);
&n
for ループ内で n ( ) のアドレスを出力しています。を取り除く&
エラーは、印刷しようとしている方法にありますn
。値の代わりにのアドレスを渡しています。n
この場合、浮動小数点を使用しても何も得られません。それは機能しますが、 aint
も同様に機能します。
int n = 3;
printf ("%d\n", n);
for (; n <= 99; n += 2)
printf ("%d\n", n);
C では、ループ終了条件に使用することもより一般的<
であるため、次のようになります。
for ( ; n<100; n+=2)
...通常はループ条件が優先されます。
for ループ条件でエラーが発生しました。サフィックスを追加するのを忘れていましたf
:
好き:
for (; n <= 99.0f; n += 2)
^
注意:サフィックスのない浮動小数点リテラルは double であり、float よりも一般的に使用される浮動小数点型です。
2 番目の printf エラー: @adrianz の回答
printf ("%f\n", &n);
^ remove it