黑马程序员技术交流社区
标题:
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
[打印本页]
作者:
fei_xiong
时间:
2014-4-28 17:42
标题:
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
哪个高手来说下啊
作者:
doyxy
时间:
2014-4-28 18:03
s1=s1+1,1默认是int型,两个类型不能直接相加,+=就没错
作者:
skill20
时间:
2014-4-28 18:18
short s1 = 1;
s1 = s1 + 1 --- 1 是int类型, int 不能自动转short。so~~~报错。
作者:
游侠儿
时间:
2014-4-28 18:35
本帖最后由 游侠儿 于 2014-4-28 19:57 编辑
s1是short占两个字节,1是常量,容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型;但是short、byte、char类型只要参与运算都会上升为int类型,比如说 short s1 = 1,s2 = 2;s1 = s1 + s2;依然会报错,因为他已经参与了运算上升为了int类型,如果改为s1=1+1;则不会报错,因为1+1得到的还是常量。数据类型按容量大小排序为:byte,short,char->int->long->float->double,容量数据大的数据类型不能再赋值给容量数据小的类型,所以会报错
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2