为什么scanf()
在读取l
时需要“ %lf
”中的double
,当printf()
可以使用“ %f
”而不管其参数是double
还是?
示例代码:
double d;
scanf("%lf", &d);
printf("%f", d);
最佳答案
因为C会将带有可变参数的函数的浮点数提升为双精度。指针没有提升为任何内容,因此您应该使用%lf
,%lg
或%le
(或C99中的%la
)来读取双精度型。
关于c - 为什么在printf()只需“%f”就可以的情况下,scanf()需要“%lf”来进行 double 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37971950/