A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Royvan

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© Royvan 初级黑马   /  2014-4-23 06:50  /  776 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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)
真的是这样吗?请大神指点一二。

点评

基础问题就认认真真看完毕老师视频!!!  发表于 2014-4-23 07:18

4 个回复

倒序浏览
a+=b应该等同于(a的数据类型)((a)+b)
您的理解是正确的,因为a+=b其中包含了一个自动转换动作,这个知识点毕老师在视频中讲到过。
回复 使用道具 举报
本帖最后由 Royvan 于 2014-4-23 09:17 编辑

谢谢,我会认真再看看。
回复 使用道具 举报
看看运算符优先级
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马