阶段一:基本整数类型——新手村的舒适区
当我们刚开始学习C++时,老师会告诉我们:"int能表示到
,够用了"。确实,对于计数器、小金额计算,
int看似游刃有余。但很快就会发现,在真实世界中,这个范围小得可怜。
char:8位的小天地
char c = 127; // 最大正值
c++; // 恭喜,你触发了undefined behavior!
char的-128到127范围,连ASCII字符都表示不全,更不用说处理中文字符了。在Unicode时代,这简直是石器时代的工具。
int:看似很大,其实不大
int population = 8000000000; // 80亿人口?编译都过不了!
全球人口80亿,已经超出int的正数范围。更不用说金融计算中,随便一个交易额就可能让int原地爆炸。
unsigned long long:最后的倔强
unsigned long long max = 18446744073709551615ULL; // 2^64-1
// 但遇到1e20你就知道什么叫绝望
看似天文数字,但在科学计算面前就是弟中弟。计算宇宙年龄(约4.3e17秒)还凑合,但遇到大数运算直接GG。
阶段二:浮点数的诱惑与陷阱
当整数不够用时,很多人的第一反应是:"上double!" 这确实能解决范围问题,但会引入新的精度地狱。
float:精度杀手
float money = 100.0f;
for (int i = 0; i < 1000; i++) {
money += 0.1f;
}
// 结果不是200,惊喜吗?
float只有6-7位有效数字,做累加运算就是自寻死路。金融系统用float?等着被财务追杀吧。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



