C语言格式控制问题求解

  1. float a = 2; printf("%f",a);
  2. printf("%f",2); 为什么1没有出错而2得不到想要的结果,哪位亲从原理上讲一下好吗???

什么叫做得不到想要的的结果,请描述的再详细些

语法错误,printf("%f",a)输出变量才能通过机制转换,但输出常量是不会转换的

类型转换问题,修改为2.0f就ok了

第二个语法有问题,你定义的变量才能与前面赋的值匹配,电脑才能运行出你要的结果

使用变量系统会自动转换,使用常量2是int类型,类型不匹配,如果想使用修改为2.0f

常量输出,得和前面的符号表示的一样,是f,就写成2.0f,

这就要看printf的源码是怎么处理的了