定义一个short变量。 short s=4; //s=s+5; 编译失败。因为2次运算,先+,后赋值 。5是整型,s+5,s为short型会转为int型,结果是整型。而赋值给s时, 结果为整型却要赋给精度低的short型,会丢失精度。 s+=5; // 编译通过,只做赋值运算,内部会有自动转换。 “+=” 操作,系统会自动执行类型转换操作,等价于s=(short)s+5。