本帖最后由 Royvan 于 2014-4-23 09:16 编辑
昨晚,复习的时候,发现
int b=5;
b*=++b;
的执行结果是30,本以为b*=++b会等同于b=b*++b呢?
现在看来,是否等同于b=(b)*++b呢?
仔细回想了一遍,发现还有一个问题:
byte a=5;
double b=-5.5;
a+=b;
以上语句编译并不会报错,也就是说赋值运算符+=、*=、-=、/=都
默认进行了强转?
也就是说a+=b应该等同于(a的数据类型)((a)+b)
真的是这样吗?请大神指点一二。 |
|