请帮助我理解以下 C 输出:
#include<stdio.h>
int main() {
float x = 4.0;
printf("%f\n",x);
printf("%d\n",x);
int y=x;
printf("%d\n",y);
return 0;
}
gcc编译器的输出
4.000000
0
4
据我所知,当我们将 float 分配给 int 变量时,变量的小数部分将被终止,然后分配给 int 。
为什么在这种情况下没有发生?
你没有打印y
,你正在打印x
again.
作为旁注,printf
无法进行转换。所以当 a 时传递一个浮点数%d
预期是未定义的行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)