(char) ch 的问题

(char) ch 的问题

char ch=65535;没问题
char ch =65536; 就报错
char ch=char(65536); 就没问题;
看不透啊。ch 强制转换类型成char后就能容下65536? ch(变量值)它本来就是char类型啊,为何本来的char ch容不下 65536 ,强制转换一样类型的(char)就容得下65536? 感觉都一样啊 就把 char类型的 ch 强制转换成一样的(char)类型,谢谢

正在回答

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

1回答

char ch =65536;

编译器会解析因为超出范围无法直接赋值

char ch=char(65536);

强转之后,编译器会按照char型存储规则进行强行压缩,虽然此时编译并不报错,但是最终保存的数据已经不是准确的数据值了。

如果解决了你的疑惑,请采纳,祝学习愉快!

  • 慕UI5429131 提问者 #1
    所以强转=强压? char c 跟 (char) c 是不一样?
    2018-03-06 16:06:35
  • 喜欢做梦的鱼 回复 提问者 慕UI5429131 #2
    对,不一样
    2018-03-06 16:44:01
  • L_ights 回复 提问者 慕UI5429131 #3
    不精确,数据丢失,就和四舍五入一个道理。
    2018-03-25 14:47:15
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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