char c='c';int i=10; c=c+i;为什么编译错误?

char c='c';int i=10; c=c+i;为什么编译错误?

c是字符型不是可以赋值一个不超过取值范围的整形给它吗?比如,char c=65;

那c+i的结果是int型吗?如果是的话,为什么c=c+i;会编译错误呢?


正在回答 回答被采纳积分+1

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

2回答
xeqtrr111 2019-02-16 22:35:41

我追问,加入 char c=“cba”;int i=1;为什么这个会通过,原因是前面是字符串类型所以+加好就变成连接符了么?呢为什么前面是字符型‘c’的话,加号就变不了连接符了?

  • 我错了,原因是:“abc”是Sting 所以不报错,‘c’是字符型所以要(char)转换
    2019-02-16 22:38:52
洛基工程师 2019-01-08 10:22:15

int 比 char容量大啊! 让 int和char相加结果默认为int型,你赋值给char型需要强制转换

  • 提问者 Tobina #1
    那char c=65;为什么可以编译通过呢?65是int类型吗?
    2019-01-08 10:36:23
  • 洛基工程师 回复 提问者 Tobina #2
    65是ASCII码啊,是int类型,但是对于char来说有特殊意义,自动可与转换
    2019-01-08 11:27:50
  • 提问者 Tobina 回复 洛基工程师 #3
    就是此int非彼int?前者方式得到的int类型数据不会被当做ASCⅡ码来使用是吗? 大概了解了,以后再深入底层了解运作方式。谢谢
    2019-01-08 11:39:12
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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