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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 聂广强 中级黑马   /  2013-7-22 21:46  /  1316 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

short i=i+1;右边是一个short类型的加上一个整型的1,结果右边的类型整体从short就变成了 int 类型 这个属于隐式转换数据类型,然而左边的变量 i 还是
short类型 如果就这样为i赋值,则在编译的时候会报错。如实要正确的编译成功只需在右侧进行short类型的强制转换 即可。
short i+=1;是先将“+=”右边的类型强制转换成左边的short类型后在进行运算,所以不需要强制转换,这就是二者之间的区别

5 个回复

正序浏览
帕格尼尼的眼泪 发表于 2013-7-23 22:48
我觉得 楼主有些地方说的太片面  short i=i+1,1是int整型 而i 是short短整型  int整型的范围比short短整型 ...

这只是再说区别
回复 使用道具 举报
帕格尼尼的眼泪 发表于 2013-7-23 22:48
我觉得 楼主有些地方说的太片面  short i=i+1,1是int整型 而i 是short短整型  int整型的范围比short短整型 ...

这只是再说区别
回复 使用道具 举报
我觉得 楼主有些地方说的太片面  short i=i+1,1是int整型 而i 是short短整型  int整型的范围比short短整型的范围大,所以 int不能隐式转换成short,只能强制转换,我们要保证类型的一致性,所以int 1 没有转换成short类型,所以缺少强制转换  编译会报错 为什么不是这样呢
回复 使用道具 举报
新手学习,顶一下吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马