源代码很简单,就是定义一个float变量a=2.5,int变量b=2
然后将a,b分别按%d %f型输出。
当然没有按正确类型格式化输出肯定是有问题的。
但是按正确类型格式化输出也发生了很奇怪的问题。
源代码如下,VS2013下编译通过0 errors, 0 warnings。
#include <stdio.h>
int main(void)
{
float a = 2.5;
int b = 2;
printf("%d\n%f\n%d\n%f\n", a, a, b, b); /*这条语句的输出全是错的*/
putchar('\n');
printf("%f\n%d\n%f\n%d\n", a, a, b, b); /*这条语句的输出有两个对的两个错的,符合我的预期*/
return(0);}
输出结果如下图
我的主要问题是,为什么第一个printf的输出没有一个是对的?
本人是小白,希望能有大神帮忙解答,多谢!