A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
哪个高手来说下啊

点评

注意提问技巧,随意复制粘贴题目要被扣技术分的哦。  发表于 2014-4-28 17:49

4 个回复

正序浏览
本帖最后由 游侠儿 于 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,容量数据大的数据类型不能再赋值给容量数据小的类型,所以会报错
回复 使用道具 举报
short s1 = 1;
s1 = s1 + 1 --- 1 是int类型,  int 不能自动转short。so~~~报错。
回复 使用道具 举报
s1=s1+1,1默认是int型,两个类型不能直接相加,+=就没错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马