Java为什么char = char^char与char^= char不同?

问题描述:

我解决莱特代码中的问题,发现下面的代码是Java不允许,Java为什么char = char^char与char^= char不同?

char c = 's'; 
c = c^c; 

而下面是

char c = 's'; 
c^=c; 

有什么特别的原因?谢谢。

这对加号或减号也是如此。 c^c被评估为int,所以右边是int并且不能被分配给char。 在^ =的情况下,右边是char,并且可以应用到char上。 这不是最明显的行为。

+0

哦,我明白了。谢谢!这实际上为我提供了一些关于复合赋值操作符的信息。 –