黑马程序员技术交流社区

标题: 面试相关 考short i=i+1 和 i+=1区别 [打印本页]

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

作者: HEIMA时光    时间: 2013-7-22 22:59
新手学习,顶一下吧!
作者: 帕格尼尼的眼泪    时间: 2013-7-23 22:48
我觉得 楼主有些地方说的太片面  short i=i+1,1是int整型 而i 是short短整型  int整型的范围比short短整型的范围大,所以 int不能隐式转换成short,只能强制转换,我们要保证类型的一致性,所以int 1 没有转换成short类型,所以缺少强制转换  编译会报错 为什么不是这样呢
作者: 聂广强    时间: 2013-7-23 23:14
帕格尼尼的眼泪 发表于 2013-7-23 22:48
我觉得 楼主有些地方说的太片面  short i=i+1,1是int整型 而i 是short短整型  int整型的范围比short短整型 ...

这只是再说区别
作者: 聂广强    时间: 2013-7-23 23:14
帕格尼尼的眼泪 发表于 2013-7-23 22:48
我觉得 楼主有些地方说的太片面  short i=i+1,1是int整型 而i 是short短整型  int整型的范围比short短整型 ...

这只是再说区别




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2