C语言 -- printf函数参数类型和打印格式不匹配
C语言中,变量在运算或者赋值时会存在类型的自动转换。很一般的情况这里不再讨论,下面只说一下赋值和利用printf函数打印时的情况
1.赋值时的自动转换
int a = 1.5;
printf("%d", a);
输出值为1 因为1.5是一个double类型,但是在赋值为a时,由于a是一个int类型,所以将小数部分舍去,a为1
2.printf函数中不涉及自动转换
他只按照固定的格式打印,如果解析失败,就输出对应格式下的0
例如:
int a = 1;
printf("%f",a);
输出0.000000 因为a是int类型,用float类型就会解析失败,所以输出浮点数格式的0,即为0.000000
其余的类似,如%c下解析失败输出一个空格,,
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步