C语言中,数据类型的隐式转换与显式转换分别是个什么意思?

隐式转换与显式转换的区别又在哪?
2024-10-29 20:59:36
推荐回答(3个)
回答1:

显式转换,就是强制转换。在被转换的表达式前加(类型),比如:(float)5,就是把5显式转换成float类型。

隐式转换,就是不需要加强制转换,系统会自动做这个操作,比如:

double k;

k=10;

10是int型,不需要显式转换,系统自动会把它转为10.0。

扩展资料:

隐式自动类型转换:

C++语言编译系统提供的内部数据类型的隐式自动转换规则如下:

1、执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如: int型转换成double型,char型转换成int型等等;

2、赋值表达式中,等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它;

3、函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参;

4、函数有返回值时,系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。

参考资料来源:百度百科-c语言




回答2:

显式转换, 就是强制转换. 在被转换的表达式前加(类型),比如:

(float)5,就是把5显式转换成float类型。

隐式转换, 就是不需要加强制转换, 系统会自动做这个操作,比如:

double k;

k=10;

10是int型, 不需要显式转换, 系统自动会把它转为10.0


扩展资料:

 在以下四种类型中会进行隐式转换:

1、算术运算符中,低类型转换为高类型

2、赋值表达式中,右边的值自动隐式转换为左边变量的类型,并赋值

3、函数调用参数传递,系统隐式将实参转换为形参的值

4、函数有返回值,系统隐式返回表达式类型转换为返回值类型

C++类对象的显式转换:当类构造函数只有一个参数或除了第一个参数外其余参数都有默认值时,则此类有隐含的类型转换操作符(隐式转换),但有时隐式转换并不是我们想要的,可在构造函数前加上关键字explicit,来指定显式调用。

 参考资料来源:百度百科-c语言

回答3:

隐式转换就是不带转换类型的转换,如int转float你可以这样子float a ;int b = 4;
a=b就是隐式转换,而a = (float)b就是显示转换。区别在于当向下转换时如果不显示转换就会有问题,如float a = 4.5; int b = a;这里就可能报错,因为int可以自动上升为float,但由float不能自动转化为int,这里就需要显式转换,即int b = (float)a才是最保险的;所以显式转换肯定不会出错,但隐式转换就说不定了。