输出是什么?
main()
{
float a=4;
int i=2;
printf("%f %d",i/a,i/a);
printf("%d %f",i/a,i/a);
}
我收到的答案是:0.500000 00 0.000000
原因:在第一个printf
中, %f=i/a=2/4=int/float
隐式转换完成并i
成为float
导致结果 a float
(即 0.500000)。
float 的默认精度为 6,因此十进制后为 6 位,然后是 next %d=i/a=2 /4=0.500000
,但%d
格式字符串仅打印整数,因此打印 0 并丢弃十进制后的值。
Nextprintf
与%d=i/a=2/4
print 0 具有相同的概念;但是,%f=i/a=2/4=0.000000
最后的结果我不明白。