|
原帖由 muchu123 于 2008-8-26 13:29 发表 ![]()
这个什么意思?
在s1=s1+1;中,s1+1运算的结果是int型,把它赋值给一个short型变量s1,所以会报错;而在s1+=1;中,由于是s1是short类型的,所以1首先被强制转换为short型,然后再参与运算,并且结果也是short类型的,因此不会报错。
s1=s1+1不是和S1+=1一样的么?怎么一个错一个不错的?
而在s1+=1;中
1首先被强制转换为short型
s1+1
short + int
把short 的 s1 转换成高阶的 int 32位 然后再 +1
(s1+1)的结果 是int
把int 赋值给short 报编译错误 |
|