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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 0_TNT_0   /  2014-12-10 21:30  /  2841 人查看  /  31 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编译不能通过。 short s = 1;         s = s + 1;  //等号右边的s+1计算完类型提升为int型,不能直接赋值给等号左边的s。改为s=(short)(s+1);这样就可以编译成功了。
回复 使用道具 举报
不给吃鸭梨 发表于 2014-12-10 22:28
莫名的眼熟呢,难道
自赋值带强制转换功能

难道 是1208的 同学吗
回复 使用道具 举报
爱卿 发表于 2014-12-10 22:49
7号编码好像就是个什么BEL响铃  至于c 没报错 说明是char类型吧。 我也是才学几天。 不确定 ...

难道是 1208 的么
回复 使用道具 举报
爱卿 中级黑马 2014-12-10 23:06:48
24#

难道你也是么。
回复 使用道具 举报
我去  你们一个班的???
回复 使用道具 举报
我还以为是一个班的呢!呵呵
回复 使用道具 举报
清浅。。 发表于 2014-12-10 22:51
编译不能通过。 short s = 1;         s = s + 1;  //等号右边的s+1计算完类型提升为int型,不能直接赋值给 ...

感谢。互相学习,加个好友吧
回复 使用道具 举报
不能编译通过,因为s+1默认是int类型,这样把s+1的值赋值给short会损失精度,可以这样改s=(short)(s+1),而s+=1则默认强制转换
回复 使用道具 举报
不能,都一样的啊!
回复 使用道具 举报
受教了!
回复 使用道具 举报

0_TNT_0 发表于 2014-12-10 22:44
我试过了,第一句话char c = 7;System.out.println(c);   会发出一个“嘀”声,  那 变量 c  还是 char  ...
当然是char型的了,因为计算机底层的都是二进制,7正好对应ascii码表中的 BEL (bell) 响铃所以才能够用7表示,而不报错,但是你已经定义了char  c=7 所以c仍然是char型,只不过能用ascii码表中对应的数字表示而已。
回复 使用道具 举报
学习了,大家对细节挺关注的
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马