吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 743|回复: 4
收起左侧

[求助] java关于字符和整形的问题求助

[复制链接]
simper 发表于 2021-1-28 20:04
char i='a';
char j='a'+1;//b
char k=i+1;//报错,从int转到char可能会有损失
大佬们求助为什么第二行可以运行第三行报错啊,数字1默认应该是int型,int型与char型相加不应该自动升级为int型吗

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

孤狼微博 发表于 2021-1-28 21:54
默认是int型的 你前面定义了类型
GGbond 发表于 2021-1-28 22:06
就我个人理解,第三行把i当成变量,底层无法判断该值是否在char 65535范围内。
古月不傲 发表于 2021-1-28 22:17
本帖最后由 古月不傲 于 2021-1-28 22:31 编辑

g++ 编译 加上-Wconversion也会发出警告,我的猜测可能是它把值先放在eax寄存器的缘故,编译器直接把eax + 1,然后mov al给这个变量的内存地址 所以可能会截断
第二行是直接计算出结果movb给了这个变量,没有经过中转
Screenshot from 2021-01-28 22-28-34.png
SpeII 发表于 2021-1-28 22:24
其实感觉第二行应该也返回int,编译能通过应该是帮你强转了,但运行时就有可能报异常
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-29 20:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表