C中的cast运算符和后缀之间有什么区别?

时间:2014-11-06 23:55:55

标签: c

如果我有这些常量1 + 2.3,那么(float)1 + 2.3和此1f + 2.3之间有什么区别?

2 个答案:

答案 0 :(得分:2)

所以,让我们看看一些案例:

  1. 1 + 2.3,这是一个整数加一个双。
  2. 1f + 2.3,这是一个浮点加一个双倍。
  3. 1. + 2.3,这是双加双。
  4. 在所有这三种情况中,第一个参数已经或者将被提升为双精度。此外,这些表达式的结果将始终是双倍。

答案 1 :(得分:1)

当你写1.f时,你会在内存中创建一个浮点数。 当你写(float)1时,你在内存中创建一个整数,但是这个数字将被解释为表达式(强制转换)中的浮点数。