黑马程序员技术交流社区
标题:
请问short s=0;short s=0;正确,而s=s+1;不正确,为什么呢?
[打印本页]
作者:
千年一梦
时间:
2015-2-21 15:08
标题:
请问short s=0;short s=0;正确,而s=s+1;不正确,为什么呢?
请问short s=0;short s=0;正确,而s=s+1;不正确,为什么?
作者:
alvis2015
时间:
2015-2-21 15:23
short s = 0;//s为short类型
s = s + 1;//此处+1,1是一个int型常量
复制代码
第二句会有一个自动类型转换,因为int型比short型长,所以s由+1后自动转换成了int
作者:
alvis2015
时间:
2015-2-21 15:43
s+1得到的结果自动转换成了int,与声明的s的类型short不匹配,会有编译错误,需要强制类型转换。
作者:
huangchunwei
时间:
2015-2-21 15:55
S+1的结果为int类型,而将结果又赋值给S,S为short类型,所以失败。
作者:
鲍阳
时间:
2015-2-21 16:19
因为1是int类型的,右边的值提升成了int,而左边是short,可能丢失数据
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2