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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

求大神解释

14 个回复

倒序浏览
s=s+5;这条代码中,s+5 之后得到的结果自动转为int型,然而将int型数据赋予short是不可以的,需要加强制转换:改成s=(short)(s+5);就可以了;但是当s+5的值超过了short的范围会损失精度哦。至于s+=5;其实这条代码等价于s=(short)(s+5);默认带有强制转换的。涉及到的是类型转换的问题。
回复 使用道具 举报 1 0
1楼解释的蛮好
回复 使用道具 举报
楼上解释的很到位了
回复 使用道具 举报
有变量就不行
回复 使用道具 举报
MilesMatheson 发表于 2015-8-25 22:28
s=s+5;这条代码中,s+5 之后得到的结果自动转为int型,然而将int型数据赋予short是不可以的,需要加强制转 ...

什么s+5的结果会自动转化为int类型,就是这里想不通
回复 使用道具 举报
这是这个语言底层自动执行的,你只需要记住就好了;
回复 使用道具 举报
爱晴 中级黑马 2015-8-27 01:47:37
8#
rhyhhg5 发表于 2015-8-26 11:10
什么s+5的结果会自动转化为int类型,就是这里想不通

s+5转换成int类型是属于自动转换,因s 定义的是short类型,而数字5系统默认的是int类型,所以s+5默认转换成int类型。 char/short——>int——>float/unsigned——>long——>double   记住这个就行
回复 使用道具 举报
rhyhhg5 发表于 2015-8-26 11:10
什么s+5的结果会自动转化为int类型,就是这里想不通

自动类型提升,小容量(short   2个字节)的会向大容量(int   4个字节)的自动转,大容量向小容量需强转,扩展赋值运算符+=,隐含强制转换   刘意的视频应该讲的更详细    你可以去看
  
回复 使用道具 举报
DUKEMAN 来自手机 中级黑马 2015-8-27 09:00:37
10#
请short精度啊
回复 使用道具 举报
MilesMatheson 发表于 2015-8-25 22:28
s=s+5;这条代码中,s+5 之后得到的结果自动转为int型,然而将int型数据赋予short是不可以的,需要加强制转 ...

回答得漂亮
回复 使用道具 举报
一楼正解
回复 使用道具 举报
终于碰见会做的题,结果楼上全回复了。
回复 使用道具 举报
楼上说的也是我想说的
回复 使用道具 举报
涉及类型转换的问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马