以下代码哪个是正确的?为什么?
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;
关于这个问题我实验了一下,b是肯定错的,我的解释是因为“byte b = 1; b = b + 1; ”语句相当于“[byte] b = [byte] b + [int] 1”语句,b自动转型为int与1做加法,结果是int类型,把int类型赋给byte类型b,所以错误。
而a,c,d都可以运行没有报错,但是我又不能解释这三个为什么正确,求大神为小弟答疑解惑。