黑马程序员技术交流社区

标题: 在书上看到一道类型转换面试题,求解答 [打印本页]

作者: stonelove    时间: 2015-10-9 10:27
标题: 在书上看到一道类型转换面试题,求解答
就是这本书
有这么一道题
我感觉应该选择D啊,因为报错原因不是第四句报错,原因是可能丢失精度吗?
       byte b=3,c=5;
这种定义方法没有错误,原因是两个byte型变量相加,系统自动提升结果类型为int,
所以错误的是
       byte d=b+c;
有人给我解释,说错误应该是b和c应该定义为int,但是这样的话,
       byte d=b+c;
不同样应该改动么?
而且,为什么int a=1,b=2;int c=a+b;不报错呢?
作者: boboyuwu    时间: 2015-10-9 10:36
谁跟你说2个byte相加自动提升成int的 乱理解
作者: stonelove    时间: 2015-10-9 10:49
boboyuwu 发表于 2015-10-9 10:36
谁跟你说2个byte相加自动提升成int的 乱理解

不是这样说的么?两个byte类型的变量相加,系统会默认用int类型存储两者之和,这和自动提升成int不一样么?而且,请问这道题为什么选择C啊
作者: boboyuwu    时间: 2015-10-9 11:17
stonelove 发表于 2015-10-9 10:49
不是这样说的么?两个byte类型的变量相加,系统会默认用int类型存储两者之和,这和自动提升成int不一样么 ...

d是变成了int型啊    所以要强制换换成byte才不报错
作者: stonelove    时间: 2015-10-9 11:20
boboyuwu 发表于 2015-10-9 11:17
d是变成了int型啊    所以要强制换换成byte才不报错

对啊 所以书上答案错了??
作者: kongminggg    时间: 2015-10-9 12:13
boboyuwu 发表于 2015-10-9 10:36
谁跟你说2个byte相加自动提升成int的 乱理解

老师是这样说的
作者: boboyuwu    时间: 2015-10-9 13:46
stonelove 发表于 2015-10-9 11:20
对啊 所以书上答案错了??

我觉得CD都对




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2