Java中类型转换问题

第一种情况:charb='a'+10;(不报错)第二种情况:chara='a';charb=a+10;(报错,要强制转型)为什么第一种不需要强制转型,第二种需要... 第一种情况:
char b = 'a' + 10;
(不报错)
第二种情况:
char a = 'a';
char b = a +10;
(报错,要强制转型)

为什么第一种不需要强制转型,第二种需要
展开
 我来答
王勃啊
2014-12-28 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5015
采纳率:62%
帮助的人:4063万
展开全部

如果你试过

char a = 'a'+100000;

你会发现也是会不行的。

主要是'a'+10确定为char类型是用了程序员一贯的习惯做法才加以改进的。。

更多追问追答
追问
你的意思是程序默认的?那为什么第二种不行呢?
追答
因为对于a+10来说,a是变量,跟'a'来说不同,它是常量
匿名用户
2014-12-28
展开全部
第一种:先计算'a' + 10,会进行char转换为int的自动类型转换得到的是107,字符'a'在ASCII码表中对于十进制数字97,所以结果为10+97=107。107在char范围内为k。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式