当前位置: 首页 > 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.lryc.cn/news/460559.html

相关文章:

  • LeetCode岛屿数量
  • Karmada核心概念
  • Rust 与生成式 AI:从语言选择到开发工具的演进
  • Python爬虫高效数据爬取方法
  • C语言之扫雷小游戏(完整代码版)
  • Spring WebFlux 响应式概述(1)
  • Unity游戏通用框架——事件的订阅和发布(观察者模式)
  • 将 Ubuntu 系统中的 **swap** 空间从 2GB 扩展到 16GB
  • 流程图 LogicFlow
  • Mac通过键盘选取内容
  • 如何通过OpenCV实现图像融合拼接?
  • Qt5.14.2 安装详细教程(图文版)
  • 深圳市步步精科技有限公司荣获发明专利,彰显技术研发实力
  • std::function的概念和使用方法
  • OpenAI的Swarm是一个实验性质的多智能体编排框架
  • 简易STL实现 | Map 的实现
  • `concurrent.futures` 是 Python 标准库中的一个模块
  • PicoQuant GmbH公司Dr. Christian Oelsner到访东隆科技
  • leetcode128最长连续序列 golang版
  • 【OpenCV】(六)—— 阈值处理
  • 重学SpringBoot3-集成Redis(九)之共享Session
  • Linux:信号保存与处理
  • 工具方法 - 可选的一些AI聊天机器人
  • YOLOv11改进策略【卷积层】| CVPR-2023 ScConv:即插即用,减少冗余计算并提升特征学习
  • 总结拓展十四:批次管理(2)
  • 架构设计笔记-18-安全架构设计理论与实践
  • Python网络爬虫
  • 38. 外观数列
  • Android中的三种数据存储方式
  • VS2022中Qt环境配置步骤