printf("line 5: %f\n",98); //output is 0.000000
printf("line 6: %f\n",98.98); //output is 98.980000
printf("line 5: %f\n",98);//though same as first printf statement but output is 98.979980
Run Code Online (Sandbox Code Playgroud)
虽然第一个和最后一个printf语句完全相同,但它们的输出不同.为什么?
因为当它期望浮动时,正在将一个int传递给printf,这就是为什么它工作很奇怪.但我的观点是为什么在最后一个打印声明中,它不是打印一些垃圾值或0,而是使用第二个printf语句的值,这就是打印的内容.
只是想知道当我在C中使用错误的格式说明符时会发生什么?
例如:
x = 'A';
printf("%c\n", x);
printf("%d\n", x);
x = 65;
printf("%c\n", x);
printf("%d\n", x);
x = 128;
printf("%d\n", x);
Run Code Online (Sandbox Code Playgroud)