为什么 scanf() 需要“%lf”来表示双精度数,而 printf() 只需使用“%f”就可以了?

2024-04-11

为什么会这样scanf()需要l in "%lf“当读一个double, when printf()可以使用 ”%f“无论它的参数是否是double or a float?

示例代码:

double d;
scanf("%lf", &d);
printf("%f", d);

因为对于采用可变参数的函数,C 会将浮点数提升为双精度数。指针不会提升为任何内容,因此您应该使用%lf, %lg or %le (or %la在 C99 中)以双打形式读取。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 scanf() 需要“%lf”来表示双精度数,而 printf() 只需使用“%f”就可以了? 的相关文章

随机推荐