A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 任黎明 中级黑马   /  2014-6-4 11:27  /  756 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

2.以下代码那个是正确的?为什么?
*                 a.byte b=1+1;
*                 b.byte b=1;b=b+1;
*                 c.byte b=1;b=b+=1;
*                 d.byte b=1;b=++b;
* 答案:
*                 a正确
*                 b错误,byte类型的 b和1进行数学算法操作时会引发自动类型提升,结果是int型的,只有进行强制类型转换才能赋值给byte型的b
*                 c中b=b+=1可简化为b+=1,原语句编译、运行均没有错误
*                 d有一个警告,b=++b;赋值给变量b没有影响,可优化为++b;

2 个回复

正序浏览
饥渴ing 来自手机 中级黑马 2014-6-5 16:22:21
藤椅
c和d也是正确的。只不过是写了些没有意义的赋值
回复 使用道具 举报
c,d你没有答出它有一个隐式的转换,尤其是c答的很不好,这题本意就没想让你编译运行,需要了解其原理
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马