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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 窦超 黑马帝   /  2011-12-20 15:03  /  1777 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 窦超 于 2011-12-20 15:32 编辑

short s1 = 1; s1 = s1 + 1;在这里面S1+1变成了int型然后需要强制转换类型才可以,但是 short s1 = 1; s1 += 1;这个就不存在这样的问题,我想问问+=的运行机制在后台是怎么样的逻辑语言使得他可以避免类型的改变?

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

6 个回复

倒序浏览
+=在运算时是自动进行类型转换,自动从short型转换为int型。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报

S1+=1  和 S1=S1+1是等价的

点评

S1+=1 和S1=S1+1 结果是一样的 S1=(int)S1+1 这才行  发表于 2011-12-20 16:04
回复 使用道具 举报
窦超 黑马帝 2011-12-20 15:08:23
板凳
常兆鹏 发表于 2011-12-20 15:07
+=在运算时是自动进行类型转换,自动从short型转换为int型。

也就是说他还是进行了转换,只是后台自动转换了而已对么
回复 使用道具 举报
窦超 发表于 2011-12-20 15:08
也就是说他还是进行了转换,只是后台自动转换了而已对么

对了 就是这样的
回复 使用道具 举报
窦超 黑马帝 2011-12-20 15:25:37
地板
房宝彬 发表于 2011-12-20 15:08
S1+=1  和 S1=S1+1是等价的

你说这个应该实在没有限定的前提下,我前提是S1是short型的,而1是int型的他俩相加的时候实际上是S1被强制的提升了
回复 使用道具 举报
应国炎 黑马帝 2011-12-20 15:38:02
7#
s1 += 1;s1后台自动提升,不会报错.  而s1 = s1+1;不会自动提升,运行会溢出.
应该是这样
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马