我知道,char可以由我显式转换,也可以由编译器隐式转换。
在我的第一个“ for”循环代码中,编译器通过隐式类型转换将char自动转换为int类型。由于char的大小为2个字节,因此它适合4个字节的大小。
我很困惑,如何将整数分配给char变量而不进行显式转换,因为int为4个字节,并且没有使用cast运算符将其显式转换为char。
// Compiler converts char to int type automatically by implicit type casting.
for (int i = 'A'; i <= 'Z'; i++) {
System.out.print(i + " ");
} System.out.println();
for (char c = 65; c <= 90; c++) {
System.out.print(c + " ");
} System.out.println();
答案 0 :(得分:-1)
“它没有分配int,而是使用UNICODE代码输入字符。”
(例如,UNICODE中的A = 65或什至是ASCII @RealSkeptic)
这只是初始化的另一种方式。
char A = 65;
char a = 'a';
System.out.println(A); \\A
System.out.println((int)A); \\65
System.out.println(a); \\a
System.out.println((int)a); \\97
防御。 Oracle for char:
char数据类型是单个16位Unicode字符。最小值为'\ u0000'(或0),最大值为'\ uffff'(或65,535(含))
也请注意评论。