我写了以下程序
#include <stdio.h>
main()
{
int i = 2;
float c = 4.5;
printf("%d\n",c);
printf("%f\n",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
虽然我知道这是错误的做法,当我运行程序时,我得到了答案
0
4.500000
Run Code Online (Sandbox Code Playgroud)
但是当我用这种方式交换printf语句时
#include <stdio.h>
main()
{
int i = 2;
float c = 4.5;
printf("%f\n",i);
printf("%d\n",c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是
0.000000
0
Run Code Online (Sandbox Code Playgroud)
我无法理解发生了什么,任何人都会解释我.
我有几个程序,其输出我无法理解:
#include <stdio.h>
int main(void)
{
int i=1;
float k=2;
printf("k is %f \n",k);
printf("i is %f \n",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出位于http://codepad.org/ZoYsP6dc
k is 2.000000
i is 2.000000
Run Code Online (Sandbox Code Playgroud)
再举一个例子
#include <stdio.h>
int main(void)
{
char i='a';
int a=5;
printf("i is %d \n",i); // here %d type cast char value in int
printf("a is %f \n",a); // hete %f dont typecast float value
printf("a is %f \n",(float)a); // if we write (float) with %f then it works
return …Run Code Online (Sandbox Code Playgroud)