笔试的题目。。。
short i=2;
i=i+1;(编译会出错)
因为i为short类型,而1为int类型,在计算时short先会自动转换成int类型,然后才计算,计算后结果为int类型,赋值给short,精确度不对,会出错。
应该强制转换类型:
i+=1;(能正确执行)
因为复合运算符在计算结束时,会自动将计算结果转换成运算符左边的类型,所以计算完后会将一个short类型的值赋给i;
笔试的题目。。。
short i=2;
i=i+1;(编译会出错)
因为i为short类型,而1为int类型,在计算时short先会自动转换成int类型,然后才计算,计算后结果为int类型,赋值给short,精确度不对,会出错。
应该强制转换类型:
i+=1;(能正确执行)
因为复合运算符在计算结束时,会自动将计算结果转换成运算符左边的类型,所以计算完后会将一个short类型的值赋给i;