为什么c+=i;可以编译并且会输出 m, 而c=c+i;就不行

为什么c+=i;可以编译并且会输出 m, 而c=c+i;就不行

c+=i; //可以编译
c=c+i;  //不能编译


正在回答

登陆购买课程后可参与讨论,去登陆

3回答

c=c+i;c为字符型数据,i为int型数据不可以自动转化为字符型数据,可以强制类型转换。c+=i;其实编译器自动进行了类型转换。。


  • 同疑惑,之前不是说c+=i 等价于c=c+i 的吗? 课程有说过,int不能自动转化为char 类型,难道c+=i这种形式相当于执行了一次强制类型转换?
    2018-02-23 16:22:30
  • irista23 回复 Alan阿浩 #2
    你说的都没有错,只是c+=i这种运算形式,编译器自动进行了强制类型转换而已
    2018-02-23 21:50:14
  • qq_慎独_31 提问者 #3
    非常感谢!
    2018-03-01 16:58:58
慕斯9895228 2018-03-05 14:00:45

c=c+i c为字符型数据,i为int 型数据不可以自动转换为字符型数据 需要强制转换 

qq_踏雪_5 2018-02-20 19:48:02

c=c+i是执行的过程

c+=i是标识

c=c+i  等号两边的c是一样的 所以会混淆

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师