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下解析失败输出一个空格,,


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM