Moh*_*hit -3 c arithmetic-expressions multiplication
当我们在C中乘以浮点数时,我们得到了什么?请解释.我感到很困惑,因为当我遇到Celsius到Fahrenheit转换以及许多其他转换时我遇到了这个问题.
当我们乘以整数浮点数时我们得到了什么?
TL; DR我们得到一个浮点结果.
详细地说,对于算术运算,如果两个操作数具有不同的等级,则根据算术转换规则,具有较低等级的操作数被提升到更高的等级,然后执行操作.在您的情况下,整数被提升为浮动类型,如果是浮动类型则是操作的结果.
引用相关部分C11,章节§6.3.1.8,常用算术转换
许多期望算术类型操作数的运算符会以类似的方式导致转换并产生结果类型.目的是确定操作数和结果的通用实数类型.对于指定的操作数,每个操作数在不更改类型域的情况下转换为其对应的实类型是公共实类型的类型.除非另有明确说明,否则公共实类型也是结果的对应实数类型,如果它们相同则其类型域是操作数的类型域,否则是复数.这种模式称为通常的算术转换:
而且,对于这个具体案例,
- 否则,如果任一操作数的相应实数类型是
float,则另一个操作数在不更改类型域的情况下转换为对应的实际类型为float