强制类型转换

强制类型转换

​char ch = 98;  这样的代码问题,运行也不会报错


我想问的是,这里的等号右边的 98 的类型是整型吗?

如果是整型,那是默认的 int 类型吗?

如果是 int 类型,那 int 类型转换为char会报错呀!!!

但是这里没有报错,这是为为什么?



正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,等号右边的98 的类型是数字。数字没有默认类型,以98为例,98的类型取决于赋值给什么类型的变量,在char ch =98;中98是char类型。

在java中,char占2个字节,取值范围是0-65535。由于98在取值范围内,所以char ch = 98;不会报错。

祝学习愉快

  • qq_慕运维0122538 提问者 #1

    那请问,float num = 3.14;  这个语句会报错,原因是 3.14 默认是double类型的


    而 double num = 0;  不会报错, 但是最终输出的num值为 0.0,这里发生了整型int到double型的转换


    于是,整数默认是int 型,小数默认是double型, 这种说法正确吗?


    如果是正确的,char ch = 98;   这里的98不应该是 int 类型吗?

    2021-01-04 18:20:55
  • 同学你好,同学的理解是正确的,整数默认是int型,小数默认是double型。

    char ch=98;是正确的,因为

    整型98没有超出char的取值范围,这时98就可以直接赋值给char类型的变量,编译器不会报错。

    在int n=98; char ch=n;中由于n是int类型,将int类型数据赋值给char类型数据时,不管n的值是什么,编译器都会直接报错。

    在后面课程中会讲到数据转换,建议同学学习完后面课程后,再来理解。

    祝学习愉快

    2021-01-04 19:01:36
  • 后面的数据转换学过了,这里我懂了,谢谢你的热心回答?

    2021-01-04 22:46:17
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师