为什么printf("%.1f",1)输出0.0

zyn*_*ynl 0 c printf

我使用的是代码块.

当代码是:

printf("%.1f", 1);
Run Code Online (Sandbox Code Playgroud)

程序可以运行,输出是0.0.我想知道为什么.`

oua*_*uah 7

将其更改为:

printf("%.1f", 1.0);
Run Code Online (Sandbox Code Playgroud)

f转换说明符需要一个类型的参数,double但是您传递的是一个int值(1属于类型int).传递错误类型的参数以printf调用未定义的行为.