为什么int赋值给char必须要显示转换?

来源:3-21 编程练习

i3kp0d

2020-08-03 13:42:58


int n = 98;
char ch = n;

上面第二行在编译的过程中报错  只有进行显示转换才可以正常通过编译

char ch = (char)n;

我想知道为什么不能隐式转换?是因为int是4字节长度而char只有2字节所以才必须要这么转换吗?

写回答

1回答

好帮手慕小脸

2020-08-03

同学你好,int用来定义整型变量,char用来定义字符型变量。将整型强制类型转换为字符型,JVM 会把数字当成字符的 ASCII 编码来处理。

int类型转char类型属于强制类型转换,而char转int属于自动类型转换(隐式类型转换)。如下所示:

http://img.mukewang.com/climg/5f27b3d30908fabd14290751.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

1

0 学习 · 16556 问题

查看课程