读书人

关于操作符的迷惑有关问题抢分者乱入

发布时间: 2011-12-05 22:12:57 作者: rapoo

关于操作符的迷惑问题,抢分者乱入
short s=1;short s=s+1;
这是肯定不对的,
但是为什么short s=1;short s+=1;这样写就对呢??

困惑!请高手解答!!

[解决办法]
你的编译器有问题,两种写法都不对
[解决办法]
short s=1;short s=s+1;
这只知道这个,因为加法运算一边是short一边是int,所以这个运算结果会是int,而左边却是short s 所以说这个不行,或者强制转换才可以。
[解决办法]
前一个是自动类型提升:short--> int
下一个是不会出现自动类型提升,就是这样规定的
[解决办法]
我的理解是short s=s+1由于int型的1,导致s自动转型为int所以错误
但是s+=1其实应该和c++中的操作符重载一样,+=可以看作是一个函数,这样就可以认为是
(short)(s+=(1));
全是猜测,谈谈而已:)
[解决办法]
下面的自动进行类型转换
上面的不能
[解决办法]
前一个是自动类型提升:short--> int
下一个是不会出现自动类型提升,就是这样规定的
正确
[解决办法]
java 解惑 书上有解释
记得好像是T+=T 是带隐式转换的
[解决办法]
我用jdk1.6
short i = 1;
i += 1;
通过编译

读书人网 >J2SE开发

热点推荐