黑马程序员技术交流社区

标题: 关于数据类型自动提升的问题 [打印本页]

作者: @夏一    时间: 2015-11-20 23:06
标题: 关于数据类型自动提升的问题
本帖最后由 @夏一 于 2015-11-22 01:08 编辑

byte b1 =3,b2 = 4,b;b=3+4;

如上,定义的b属于byte型,而3、4属于int型吗,为什么在编译时,不进行报错呢。

作者: @夏一    时间: 2015-11-22 01:07
1.byte b1=3,b2=4,b;b=3+4;
解释:3、4相加等于7,对于直接的int类型数据,系统会直接进行自动判断,是否符合byte的范围,如果超出,才会提示错误;
2.byte b1=3,b2=4,b;b=b1+4;
解释:编译会报错,b=b1+4中的b1属于变量,在进行运算时,数据类型会进行自动提升,故而会提示编译错误。

由不兼容的类型产生的错误,只出现在加和中有变量的情况,还有就是本身数值超过范围。
作者: Rocky_zhang    时间: 2015-11-22 22:03
一楼解释的很详细,楼主可以借鉴一下
作者: @夏一    时间: 2015-11-22 22:51
Rocky_zhang 发表于 2015-11-22 22:03
一楼解释的很详细,楼主可以借鉴一下

嘿嘿,一楼就是我自己回答的。
说实话,在现在看来自己当初提出的问题确实有点小儿科。在对于自学中的人来说,这样一点小问题,就可能是悬崖峭壁。
自从提出问题后,心中一直挂念着这个问题,还好通过后期的学习,自己把这个问题解决了。
我系统的回答出来,也算是给大家给自己做个总结。
作者: Rocky_zhang    时间: 2015-11-23 22:06
@夏一 发表于 2015-11-22 22:51
嘿嘿,一楼就是我自己回答的。
说实话,在现在看来自己当初提出的问题确实有点小儿科。在对于自学中的人 ...

不管怎么样,自己搞清楚就OK了,努力吧
作者: 等风来!    时间: 2015-11-23 22:20
3+4,做运算时变成int




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2