java基础 char类型的问题

图片说明图片说明
为什么第一个可以直接编码加减 第二个不行呢?

        char d= (char) (c-32);

```这样试下

a -=b 与 a=a-b 是有差别的,如果a 与b类型一样 测一样 如果a 与b 类型不一样 比如 a 是byte b是int 那么 a -=b 会自动转型 而a=a-b 是需要强转,不然会报错 忘采纳

第二个char d = c - 32中 c - 32后得到的是整型int, int 无法直接转换成char,必须强制转换。而第一个result[x] -=32其实也发生了类型转换,他先将32转换成char,然后在进行运算