黑马程序员技术交流社区

标题: byte b=1+1; byte b=1,b=++b;怎么运行同过了 [打印本页]

作者: 菜鸟小6    时间: 2014-10-24 22:57
标题: byte b=1+1; byte b=1,b=++b;怎么运行同过了
不明白  尤其是++b
作者: 田峻菘    时间: 2014-10-24 23:12
不可能通过,第二步byte b = 1;错了,不能重复定义变量,b = ++b是对的,这是赋值运算
作者: 踏云    时间: 2014-10-25 00:25
byte b=1+1这个也可以,这个应该会转成int吧
作者: 英雄传说ER    时间: 2014-10-25 02:06
byte b=1+1 把2赋值给b的时候 会先判断2是否在byte范围内,是的话就可以通过

byte b=1   这个不用说 把1赋值给b 应该没什么问题 b=++b 因为是本身数据类型赋给本身是没有什么问题的

如果是b = b+1就不会通过,因为1是整型,所以b+1会转为整型,是不能赋给byte型的;

作者: 饼子    时间: 2014-10-25 07:19
因为这两个是正确的,都有自动转型。第一个相当于b=2.所以正确,第二个也是正确的,因为++操作的本类型的数据,所以也是正确的
作者: 戏言丶    时间: 2014-10-25 07:29
++b会自动强转,如果是b+1就不行了
作者: neokevin    时间: 2014-10-28 02:19
byte类型取值范围在-128~127之间,所以b=1+1以及b=1都是没有问题的,b=++b会产生警告,由于运算符优先级的问题b先自增然后赋值给自己是没有意义的,直接可以用++b或者b++就可以了!




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