有问题,不能编译通过,s+1的结果会自动隐式提升为int类型,而int类型是不能直接赋值给short的,需要转换。如果改成short s = 1; s +=1; 这样是可以编译通过的,因为+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型,在解析的时候s+=1就等价于s = (short)(s+1)。
说说short s = 1; s = s + 1;有没有问题?如果有怎么解决?
于 2021-06-29 09:31:09 首次发布
有问题,不能编译通过,s+1的结果会自动隐式提升为int类型,而int类型是不能直接赋值给short的,需要转换。如果改成short s = 1; s +=1; 这样是可以编译通过的,因为+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型,在解析的时候s+=1就等价于s = (short)(s+1)。