为什么 n 的值在 for 循环内变为垃圾?(我是 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
不是值。
在这种情况下,使用浮点数一无所获。虽然它会起作用,但 anint
也会起作用:
int n = 3;
printf ("%d\n", n);
for (; n <= 99; n += 2)
printf ("%d\n", n);
在 C 中,循环终止条件也更常见<
,例如:
for ( ; n<100; n+=2)
... for 循环条件通常是首选。
for 循环条件中的错误,您忘记添加后缀f
:
喜欢:
for (; n <= 99.0f; n += 2)
^
记住:无后缀的浮点字面量是双精度,这是比浮点数更常用的浮点类型。
第二个 printf 错误:@adrianz 答案
printf ("%f\n", &n);
^ remove it