helloworld Asked:2020-09-03 03:05:55 +0000 UTC2020-09-03 03:05:55 +0000 UTC 2020-09-03 03:05:55 +0000 UTC Java 数据类型 772 int a = 'a'; int b = ('a' + 'b'); int声明为数据类型char,这些行是什么意思? java 2 个回答 Voted Best Answer VladD 2020-09-03T03:42:40Z2020-09-03T03:42:40Z 看。您的变量声明为int,但使用类型常量将值分配给它们char。 在 Java 中,与 C++ 不同,char 它是16 位无符号数字类型*(与 8 位有符号相对byte)。 但是,在添加char' 时,会发生整数提升:char' 被转换为 32 位类型int并添加。在这种情况下,显然不会发生溢出。 相加的结果也是int,赋值给变量b。 *虽然它的常量(文字)是由形式的符号给出的'\u1f2d',而不是数字 pavel 2020-09-03T03:09:48Z2020-09-03T03:09:48Z 事实上,它char是一个整数类型,类似物byte有时是无符号的。它可以隐式转换为int(通过字符代码)并添加。代码不是很漂亮,让那些来自 C++ 的人感到困惑。 更新。感谢您的澄清,我不太对,请参阅 VladD 的回答。
看。您的变量声明为
int,但使用类型常量将值分配给它们char。在 Java 中,与 C++ 不同,
char它是16 位无符号数字类型*(与 8 位有符号相对byte)。但是,在添加
char' 时,会发生整数提升:char' 被转换为 32 位类型int并添加。在这种情况下,显然不会发生溢出。相加的结果也是
int,赋值给变量b。*虽然它的常量(文字)是由形式的符号给出的
'\u1f2d',而不是数字事实上,它
char是一个整数类型,类似物byte有时是无符号的。它可以隐式转换为int(通过字符代码)并添加。代码不是很漂亮,让那些来自 C++ 的人感到困惑。更新。感谢您的澄清,我不太对,请参阅 VladD 的回答。