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

隐式转换与显式转换的区别又在哪?... 隐式转换与显式转换的区别又在哪? 展开
 我来答
帐号已注销
高粉答主

2020-02-09 · 说的都是干货,快来关注
知道小有建树答主
回答量:263
采纳率:95%
帮助的人:10.5万
展开全部

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

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

double k;

k=10;

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

扩展资料:

隐式自动类型转换:

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

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

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

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

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

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




四舍五不入6
高粉答主

2020-01-26 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2万
展开全部

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

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

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

double k;

k=10;

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


扩展资料:

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

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

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

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

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

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

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haiyangfenghuo
推荐于2017-09-27 · TA获得超过2439个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:778万
展开全部
隐式转换就是不带转换类型的转换,如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才是最保险的;所以显式转换肯定不会出错,但隐式转换就说不定了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式