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