我有一个简单的代码块,有人可以向我解释为什么这在Java中可以接受吗?

int a = 10;
int c = 'A' + (a -1);
System.out.println(c);


在编译器中显示的结果是:74。
那么,七十年代的价值究竟从何而来?
感谢您的回答。

最佳答案

在Java中,可以将char显式或隐式转换为int,然后使用与此字符关联的ASCII值。

根据您的情况,七十年代来自字符'A'。此字符的ASCII值为65。因此,系统会隐式地执行'A' → 65强制转换。您的计算结果是:

c = 'A' + (a-1)
 ↓
c = 65 + (10-1)
 ↓
c = 74

10-07 18:57
查看更多