-1 c
#include<stdio.h>
main()
{
int a = 66;
printf("%f", a);
}
Run Code Online (Sandbox Code Playgroud)
打印0.0000作为答案,为什么?
而且它被%f替换%c为印刷B.我没理由.
请解释 !!
这是因为您的程序调用了未定义的行为.你可能得到任何预期或意外的东西.
如果转换规范无效,则行为未定义 .335)如果任何参数不是相应转换规范的正确类型,则行为未定义.
printf("%f",a);
^ %f specifier expects arguments of type float/ double.
Run Code Online (Sandbox Code Playgroud)
并且%f被替换为%c它正在打印B.我没有理由
字符的ASCII码B是66.使用%c说明符打印(可打印)字符本身.