“ int b =(int)45.0”和“ int b = 45.0”之间有什么区别?

时间:2019-10-30 04:38:57

标签: c

我有一个问题。 我想知道通过添加“(int)”(或任何类型的数据类型),这意味着我们正在将其转换为int。

double lk = 45.0;
int nm = (int) lk; //not tested though

无论如何,对此有术语吗?

1 个答案:

答案 0 :(得分:1)

C in a Nutshell (chapter 4)解释了主题:

  

在C中,不同类型的操作数可以在一个操作中组合。   [...]当操作数具有不同类型时,编译器将尝试   在执行操作之前将它们转换为统一类型。

这称为隐式类型转换

  

您还可以使用以下方式将值从一种类型显式转换为另一种类型   演员[...]。您应该始终使用强制转换运算符   只要有可能丢失信息,例如   例如,从intunsigned int的转换。显式强制转换避免   编译器警告,并标出程序的类型转换   对于其他程序员。

这被称为显式类型转换,并通过强制转换运算符(type_name) expression

完成

现在已经指出了,结果与您的示例相同。

Here is另一篇有用的文章。