本文介绍了x = x + 3和x + = 3有什么区别?为什么一个需要类型转换而另一个不需要类型转换?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题:

char x = 'a'; 
x += 3; // ok  
x = x + 3; // compile time error

推荐答案

因为 x + = 3 等效于 x =(char)(x + 3),虽然 x + 3 默认为 int 操作,但将一个int分配给char必须强制转换.

Because x += 3 is equivalent to x = (char)(x+3), while x + 3 is default to int operation, assign an int to char must cast.

来自 JLS规范:15.26.2

这篇关于x = x + 3和x + = 3有什么区别?为什么一个需要类型转换而另一个不需要类型转换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-02 04:37