打印
[学习资料]

如果目标类型的存储范围小于源类型,则可能发生数据丢失。

[复制链接]
130|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
t60yz|  楼主 | 2025-3-24 13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
可能发生数据丢失的情况
如果目标类型的存储范围小于源类型,则可能发生数据丢失。例如:

cpp
复制
编辑
int largeNum = 1000;
char smallNum = (char)largeNum;  // 可能发生溢出
printf("%d\n", smallNum);  // 结果可能不是 1000
char 只能存储 -128 ~ 127(如果是 signed char)。

1000 超出范围,可能导致数据截断或溢出。

在 Python 这种 动态类型 语言中不会有这个问题:

python
复制
编辑
largeNum = 1000
smallNum = chr(largeNum)  # 正常转换
print(smallNum)
但如果 largeNum 超出 chr() 的范围(0~1114111),会抛出异常。

使用特权

评论回复
沙发
21mengnan| | 2025-3-24 16:26 | 只看该作者
对,会溢出,甚至跑飞。

使用特权

评论回复
板凳
xuanhuanzi| | 2025-3-25 11:16 | 只看该作者
这个情况我遇到过,因为数据类型不同,导致BUG

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

186

主题

1037

帖子

0

粉丝