gpt4 book ai didi

c - 为什么 scanf() 需要 "%lf"来表示 double ,而 printf() 只需 "%f"就可以了?

转载 作者:行者123 更新时间:2023-11-30 17:00:45 25 4
gpt4 key购买 nike

为什么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/37370130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com