例: short i=1;
i=i+1; // 1
i+=1; //2
第一行不能运行,因为在第一行的表达式中的1是默认为int型的,而i为short型,由大范围数据类型向小范围数据类型需要强制转换 如 i=(int)(i+1);
第二行能运行成功,因为在执行时,编译器会进行自动强制转换。
显然,在这种情况下i=i+1与i+=1并不等价。
例: short i=1;
i=i+1; // 1
i+=1; //2
第一行不能运行,因为在第一行的表达式中的1是默认为int型的,而i为short型,由大范围数据类型向小范围数据类型需要强制转换 如 i=(int)(i+1);
第二行能运行成功,因为在执行时,编译器会进行自动强制转换。
显然,在这种情况下i=i+1与i+=1并不等价。