sizeof float(3.0)vs(3.0f)
sizeof(3.0)和sizeof(3.0f)有什么区别
我期待他们两个给出相同的结果(sizeof float)..但它的不同。
在32位机器中,gcc编译器,sizeof(3.0f)=> 4 sizeof(3.0)=> 8
为什么这样?
因为3.0是双倍的。 请参阅C语法浮点类型 。
浮点常量可以用十进制表示法编写,例如1.23。 科学记数法可以通过添加e或E后跟小数指数来使用,例如1.23e2(其值为123)。 要求小数点或指数(否则,数字是整数常量)。 C99引入了hex浮点常量,它遵循类似的规则,除了它们必须以0x为前缀并使用p指定hex指数。 十进制和hex浮点常量都可以用f或F作为后缀来表示float类型的常量,用l或L来表示long double类型,或者为double常量留下unsuffixed。
- 3.0f是浮点数(4个字节)
- 3.0是双(8字节)
更多信息
3.0是double
,而不是float
。
doubles
是float
的两倍宽。
编辑 :3.0d只在C#中