如果我有一个字节变量:byte b = 0;
为什么下面的代码能够正常工作:
b++;
b += 1; // compiles
...但这并没有?
b = b + 1; // compile error
编译器是否将第一个解释为byte
,第二个解释为int
?
[编辑]
我知道类型转换,但我想引起您对b ++,b + = 1和b = b + 1
的注意。
我认为它们相等,那么为什么编译器会将它们区分开来?它们之间有什么区别?
b += 1 and b = b + 1 ?
byte b=0; b+=333;
这是可以的。b+=1 编译时会像 b=(byte)(b+1) 一样。 - bestsss