scanf读%f时,系统会读取4字节长度,放到float的空间。
double有8字节空间,float和double的关系不像int和long的关系那样,简单的在后面增加4字节的位置,是两个不同的存储区域
printf时,C里的float其实在使用过程中被隐式转换成了double
所以在printf时用float还是double其实是一样的。用%f和%lf都可以。
但是请注意!!!
不同的编译器其实对printf中double有着不同的处理
1.codeblocks
在codeblocks中printf对double和float是统一%f输出
2.devc++
在devc中double和float可以用%f,double也可以用%lf进行输出
所以,为了保证兼容性,输出还是使用%f吧。
大家其实也发现了,进行格式输出时,最后一位是四舍五入