黑马程序员技术交流社区

标题: 定义 byte b = 1; b = ++b; 正确吗? [打印本页]

作者: Hison_lian    时间: 2015-5-12 00:52
标题: 定义 byte b = 1; b = ++b; 正确吗?
定义 byte b = 1; b = ++b; 正确吗?

作者: 想要那片海    时间: 2015-5-12 08:15
字节型的应该也能运算出来吧,在ASCII表中字节也有对应的值,你试一下
作者: 赵旗    时间: 2015-5-12 08:21
正确, b = ++b 虚拟机会自动将++b自动转换成byte类型进行运算 , 如果你要是byte b = 1; b = 1+b; 就是错误的 会报精度损失异常
作者: iamnoten    时间: 2015-5-12 11:02
是正确的
作者: 虎鹏    时间: 2015-5-12 14:48
正确啊!!!!!
作者: 任帅RS    时间: 2015-5-12 14:53
这是正确的。如果是b=b+1的话就不正确了,整数计算时候自动转换成int类型,需要强制转换。
作者: lostaloneesk    时间: 2015-5-12 15:31
这个肯定正确的,没有涉及到任何类型转换的问题
作者: yearn    时间: 2015-5-12 15:37
对的!!
作者: 黑马LM    时间: 2015-5-12 21:23
编译正确!  你想表达什么???
作者: 陈锐涛    时间: 2015-5-12 21:30
应该是编译就 报错了,编译有问题 进度损失,如果想真的通过的话 需要b +=1,(相当于 把左右两边的值 相加 再赋值到左边,隐含强制转化)
作者: Melo    时间: 2015-5-12 21:36
恩呢 ,是正确的
作者: Melo    时间: 2015-5-12 21:39
恩呢 是正确的
作者: 陈明佳    时间: 2015-5-12 21:41
会有自动提升的过程,错误
作者: roybill    时间: 2015-5-12 21:42
是先自增再赋值给b吧,没有什么问题呀
作者: 守株人    时间: 2015-5-12 21:44
是正确的,已经试过了
作者: V_nan    时间: 2015-5-12 21:46
正确啊,好复杂的一个题啊
作者: Cat    时间: 2015-5-12 21:47
学习一下~
作者: shao122791159    时间: 2015-5-12 21:49
++b 这一个操作是给自身的值增一,并没有涉及到加法运算。所以是正确的
作者: 19期1910    时间: 2015-5-12 21:58
正确的。
作者: 二大爷    时间: 2015-5-12 21:59
正确的   运算的时候b自动提升为int ,运算完++b之后,再强转为byte
作者: 代码搬运1号    时间: 2015-5-12 22:24
看似简单 其实复杂
作者: zhangjnia    时间: 2015-5-12 22:28
应该是正确的,验证一下看看
作者: Oh.Ba    时间: 2015-5-12 22:30
这个..没问题的
作者: yuanhnu    时间: 2015-5-12 22:32
byte进行运算会自动转型为int,所以需要强转b=(byte)(++b);
作者: liya7907    时间: 2015-5-12 22:45
会自动强转,所以正确。
作者: 杨海林    时间: 2015-5-12 22:50
自己运行一下,立马知道啊!
作者: 黄冬    时间: 2015-5-12 22:59
不会报错,b += 1;   b = ++b;都不会报错的
作者: 101350    时间: 2015-5-12 23:05
不对啊!会报错
作者: 嘉Ming    时间: 2015-5-12 23:07
赵旗 发表于 2015-5-12 08:21
正确, b = ++b 虚拟机会自动将++b自动转换成byte类型进行运算 , 如果你要是byte b = 1; b = 1+b; 就是错误 ...

赞同!很详细。
作者: 唯Coconut    时间: 2015-5-12 23:18
这个是正确的




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