short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1;又有错吗?

来源:互联网 发布:苏州掌智科技淘宝店 编辑:程序博客网 时间:2024/04/26 07:07

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

  • short s1 = 1; s1 = s1 + 1;看似没有错,其实不然,因为1的数据类型为int,有Int类型参与计算的结果为int型,故第二个式子要做强制类型转换:s1=(short)(s1+1);

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

  • short s1 = 1; s1 += 1;基本上等同于 short s1 = 1; s1 = s1 + 1;它们的区别是后者编译出错,而前者则不会。为什么呢?因为前者的算法自动做类型转换
0 0