当前位置: 首页 > news >正文

C++运算出现整型溢出

考虑如下代码:

int a=INT_MAX;
int b = 1;
long c = a+b;

这段代码没有编过!

原因是a和b都是int型,相加之后会溢出。

请记住,c语言没有赋值,只有表达式,右侧会存在一个暂存的int保存a+b的值,而明显这个暂存的值溢出了。

那这么改呢,用一个强制类型转换?

int a=INT_MAX;
int b = 1;
long c = long(a+b);

答案也是编不过的,要想编过,需要将b改成long类型,这是因为运算时会发生隐式类型转换,a的int类型会转换为更长的long,从而暂存值一直是long,不会溢出。


http://www.mrgr.cn/news/50873.html

相关文章:

  • ros service不走是为什么
  • “我们为什么缺少科学精神”演讲内容拆解
  • live2d 实时虚拟数字人形象页面显示,对接大模型
  • 机器学习:知识蒸馏(Knowledge Distillation,KD)
  • HTTP状态码
  • java代码编译javac
  • 如何让c盘不是那么快速的红
  • 信创服务器下连接kingbase并执行SQL的脚本
  • 数据可视化-使用python制作词云图(附代码)
  • 植物大战僵尸杂交版之后新作:植物大战僵尸射击版(可在安卓手机上玩,文末附下载链接)
  • 活动报名丨实时互动AI 开发者年度聚会!RTE Open Day@RTE2024,10.25/26北京
  • IOS APP初体验-第1课:如何在Mac中真机调试
  • |动漫爬取|001_djangodjango基于Spark的国漫推荐系统的设计与实现2024_tpd6q1o4
  • onnx和tensorrt使用过程中的一些代码梯子
  • 单链表算法题(一)(超详细版)
  • 基于SpringBoot+Vue+MySQL的养老保险管理系统
  • C1. Adjust The Presentation (Easy Version) 双指针
  • 除毛好、噪音小的宠物空气净化器推荐?希喂、有哈、美的性能对比
  • 性能与体验登顶,海马云电脑重新定义行业,领跑未来工作与娱乐方式
  • 使用 Spring 框架构建 MVC 应用程序:初学者教程