gpt4 book ai didi

java - Java 中带有 char 和整数文字的整数运算

转载 作者:太空狗 更新时间:2023-10-29 22:33:09 26 4
gpt4 key购买 nike

有人可以向我解释为什么以下代码在 Java 中编译正常吗?

char c = 'a' + 10;

为什么这不等同于以下不编译的内容?

int i = 10;
char c = 'a' + i;

Java 语言规范(第 3.10.1 节)声明“如果整数文字以 ASCII 字母 L 或 l(ell)为后缀,则它是 long 类型;否则它是 整数 (§4.2.1)。”第 4.2.2 节提到“产生 intlong 类型值的数值运算符”。所以在我的理解中,加法的结果应该是一个int,它不能赋值给char变量c

但是,它编译良好(至少在 Sun JDK 1.6.0 版本 17 和 Eclipse Helios 中)。

这也许是一个人为的例子,但我一直在教授的 Java 入门类(class)中使用了它,现在我发现我并不真正理解它为什么会起作用。

最佳答案

这是因为编译器可以检查它 ( 'a' + 10 ) 在 char 的范围内,而它不能(通常)检查 'a' + <an integer>在范围内。

关于java - Java 中带有 char 和整数文字的整数运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3680625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com