C语言定义数据类型问题。

float test1 = 2.5f;
float test1 = 2.5;
请问这两句的差别是什么?
书中说:任何数,只要有小数点就是double类型,除非加了f使它变为float类型。
但是已在声明里写上float,难道还不能认为它是float类型?非要加个f?我又没用double声明。

对于小数常量才有加F不加F的说法!
2.5 是个常数,对于C语言程序,这表示一个double类型数据
2.5f 也是个常数,加了f表示一个float常数
区别在于:float占四个字节 double占8个字节。追问

float test1 = 2.5f;
float test1 = 2.5;
那么这两句的差别是?第一句计算机认为2.5是单精度浮点,第二句是双精度浮点?

追答

这两句从执行结果上没有区别!
第一句计算机认为2.5是单精度浮点,第二句是双精度浮点? 是的,参考前面的回答

追问

但是我的疑问就在这里。
float test1 = 2.5,我用了float这个单词,表明我希望它是单精度,非得加个f计算机才会认为那是单精度,那float这个词不是浪费?

追答

不是,float只能标识test1是float,而对于2.5并没有约束!!!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-07
没有区别,第一条是多余的f,定义了就已经是float了。求采纳~