1

forループ内でnの値がガベージに変わるのはなぜですか? (私は C 言語が初めてで、C++ のバックグラウンドを持っています)

float n = 3.0;
printf ("%f\n", n);
for (; n <= 99.0; n += 2)
    printf ("%f\n", &n);

ここに画像の説明を入力

4

3 に答える 3

4

&nfor ループ内で n ( ) のアドレスを出力しています。を取り除く&

于 2013-03-09T05:05:27.300 に答える
2

エラーは、印刷しようとしている方法にあります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)

...通常はループ条件が優先されます。

于 2013-03-09T05:06:12.667 に答える
1

for ループ条件でエラーが発生しました。サフィックスを追加するのを忘れていましたf:

好き:

for (; n <= 99.0f; n += 2)
                ^

注意:サフィックスのない浮動小数点リテラルは double であり、float よりも一般的に使用される浮動小数点型です。

2 番目の printf エラー: @adrianz の回答

 printf ("%f\n", &n);
                 ^  remove it
于 2013-03-09T05:05:11.373 に答える