short s1 = 1; s1 = s1 + 1;有什么错?

short s1 = 1; s1 += 1;有什么错?

 

答:第一行:在s1+1的时候,会吧s1转换成int型,再进行相加(short->int)  然后在将(int->short)会报错

  第二行:在s1+=1  等于 s1=(short)(s1+1); 所以不会报错