a += b 和 a = a + b有区别?

hotice 2001-10-22 03:35:42
声明变量如下:
char c = ‘c‘;
int i = 10;
表达式如下:
a) c += i;
b) c = c+i;
我在jBuilder4中,使用a表达式时,编译器没有报错;
使用b表达式,编译器报错。
很奇怪,这是为什么呢?有谁可以解释一下吗?

这个问题应该属于数据类型的问题?表达式的问题?
请高人指教!
...全文
120 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyhong_h 2001-10-23
  • 打赏
  • 举报
回复
vive,不懂不要乱说。
c是一个字符char,不是字符串String。
字符char是一种基本数据类型,是int的子类型,参与运算时会自动转化成int类型。
vive 2001-10-22
  • 打赏
  • 举报
回复
不对吧?
c+=i是取c以后的第i个字符,结果是字符类型(char)
c+i是字符c和整数i连接成一个字符串,结果是字符串类型(String),所以当然不能赋值给char类型的c了
zhixin_snow 2001-10-22
  • 打赏
  • 举报
回复
注意吧!兄弟!要细心的耶
cherami 2001-10-22
  • 打赏
  • 举报
回复
java是一种严格类型检查的语言,具体看实践吧,很多细节的东西需要自己尝试才能知道的。
vampirelord 2001-10-22
  • 打赏
  • 举报
回复
这种技巧和编译器有关,最好不要玩火。
chinaspx 2001-10-22
  • 打赏
  • 举报
回复
哦!原来op=有这样的好处,能自动转换。
bobokong 2001-10-22
  • 打赏
  • 举报
回复
c = c + i时现将c和i转换为int型计算,再赋给c时需要cast,如果不cast就不能编译
c += i时编译器自动cast,不需要显式地cast,这时java中的一个特例,-= *= /=同样
judgement_sword 2001-10-22
  • 打赏
  • 举报
回复
HOTICE 你是不是姓高?????

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧