如果我尝试将 float
打印为 int
,则以下代码:
main () {
float a = 6.8f;
printf("%d", a);
}
打印 1073741824,而此代码:
main () {
float a = 9.5f;
printf("%d", a);
}
打印 0。
输出未定义吗?另外,%f
何时与整数一起使用,而 %d
何时与 double 一起使用?
最佳答案
不仅是输出,而且整个程序都有未定义的行为,因为传递给 printf()
的值的类型与格式字符串期望的类型不匹配。
关于谁能解释一下输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16732292/