猿问

Java - char,int转换

Java - char,int转换

在Java中,允许以下内容:

char c = 'A' + 1;

这里,c将保持值'B'。在上面,首先评估表达式。所以'A'被转换为65,整个表达式的计算结果为66,然后66被转换为'B',因为我们将值存储在char中。

但是,以下内容会产生编译时错误:

char c = 'A';c = c + 1;

Java如何以不同方式查看表达式的解释是什么?顺便说一句,以下工作也很好:

char c = 'A';c++;


PIPIONE
浏览 810回答 3
3回答

有只小跳蛙

char到int转换称为扩展转换。在扩大转换时,值不会丢失有关数值整体大小的信息,其中int转换为char转换称为缩小转换。通过缩小转换,您可能会丢失有关数值总体大小的信息,也可能会失去精度。有关原始转换的更多信息,请参阅此文档。

忽然笑

这是因为编译器可以检查它('A' + 1)是否在char的范围内,而它(通常)不能检查c + <an integer>是否在边界内。
随时随地看视频慕课网APP

相关分类

Java
我要回答