sizeof运算符为浮点数提供不同的结果

时间:2017-05-04 15:33:24

标签: c++

float f=124.50;
cout<<sizeof(f);
cout<<sizeof(124.50);

两个语句都给出了不同的结果。但是适用于int和char。为什么浮动有所不同?

3 个答案:

答案 0 :(得分:2)

124.50是一个floating point literal,可生成double,而非float。您需要f后缀才能生成float

  • sizeof(124.5f)将等于sizeof(f)

答案 1 :(得分:0)

cout<<sizeof(124.50);中,124.50不是float。它floating point literal并且类型为double。除非您指定后缀,否则所有浮点文字都是double类型。

答案 2 :(得分:0)

因为124.50是双倍的 默认情况下,文字常量为double,除非您将其定义为float:124.3F。

打印4。

std::cout << sizeof(123.4F);