C++ -异常之除以 0 问题(整数除以 0 编译时检测、整数除以 0 运行时检测、浮点数除以 0 编译时检测、浮点数除以 0 运行时检测)

一、整数除以 0(编译时检测)

1、演示
#include <iostream>using namespace std;int main() {int result = 10 / 0;cout << result << endl;return 0;
}
  • 程序无法运行,输出结果
error C2124: 被零除或对零求模
2、演示解读
  • 编译器在编译时,就能发现 10 / 0​,直接报错,阻止程序生成可执行文件

二、整数除以 0(运行时检测)

1、演示
#include <iostream>using namespace std;int main() {int a = 10;int b = 0;int result = a / b;cout << result << endl;return 0;
}
  • 程序运行崩溃,输出结果
(进程 19836)已退出,代码为 -1073741676 (0xc0000094)。
2、演示解读
  1. 由于 b 是变量,编译器无法在编译时检测除零,程序可以编译通过

  2. 运行时触发异常,导致程序崩溃


三、浮点数除以 0(编译时检测)

1、演示
#include <iostream>using namespace std;int main() {double result = 10.0 / 0.0;cout << result << endl;return 0;
}
  • 程序无法运行,输出结果
error C2124: 被零除或对零求模
2、演示解读
  • 编译器在编译时,就能发现 10.0 / 0.0​,直接报错,阻止程序生成可执行文件

四、浮点数除以 0(运行时检测)

1、演示
#include <iostream>using namespace std;int main() {double a = 10.0;double b = 0.0;double result = a / b;cout << result << endl;return 0;
}
  • 程序运行结束,输出结果
inf
(进程 1784)已退出,代码为 0 (0x0)。
2、演示解读
  • 浮点数除 0 程序不会崩溃,而是返回特殊值
  1. +inf(正无穷):由 10.0 / 0.0 ​产生

  2. -inf(负无穷):由 -10.0 / 0.0​ 产生

  3. nan(非数字):由 0.0 / 0.0​ 产生

3、补充演示
  1. 负数 / 0.0
#include <iostream>using namespace std;int main() {double a = -10.0;double b = 0.0;double result = a / b;cout << result << endl;return 0;
}
  • 程序运行结束,输出结果
-inf
(进程 11416)已退出,代码为 0 (0x0)。
  1. 0.0 / 0.0
#include <iostream>using namespace std;int main() {double a = 0.0;double b = 0.0;double result = a / b;cout << result << endl;return 0;
}
  • 程序运行结束,输出结果
nan(ind)
(进程 13408)已退出,代码为 0 (0x0)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900602.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【蓝桥杯】搜索算法:剪枝技巧+记忆化搜索

1. 可行性剪枝应用 1.1. 题目 题目描述: 给定一个正整数n和一个正整数目标值target,以及一个由不同正整数组成的数组nums。要求从nums中选出若干个数,每个数可以被选多次,使得这些数的和恰好等于target。问有多少种不同的组合方式? 输入: 第一行:n和target,表示数组…

Uniapp 集成极光推送(JPush)完整指南

文章目录 前言一、准备工作1. 注册极光开发者账号2. 创建应用3. Uniapp项目准备 二、集成极光推送插件方法一&#xff1a;使用UniPush&#xff08;推荐&#xff09;方法二&#xff1a;手动集成极光推送SDK 三、配置原生平台参数四、核心功能实现1. 获取RegistrationID2. 设置别…

Linux中进程

一、认识进程 进程(PCB)内核数据结构(task_struct)程序的代码和数据 每一个进程都有其独立的task_struct,OS对众多的task_struct进行管理&#xff0c;如何管理&#xff1f;先描述再组织&#xff0c;所有运⾏在系统⾥的进程都以task_struct链表的形式存在内核⾥&#xff0c;而…

国外的AI工具

一 OpenAI &#xff1a; &#x1f4a1; 总览&#xff1a; 名称全称/代号简介GPT-4o“o” omniOpenAI 最新的旗舰多模态模型&#xff08;文字、图像、音频三模态&#xff09;&#xff0c;比 GPT-4 更强、更快、更便宜。GPT-4o-mini精简版 GPT-4o轻量级版本&#xff0c;推测为性…

企业级Java开发工具MyEclipse v2025.1——支持AI编码辅助

MyEclipse一次性提供了巨量的Eclipse插件库&#xff0c;无需学习任何新的开发语言和工具&#xff0c;便可在一体化的IDE下进行Java EE、Web和PhoneGap移动应用的开发&#xff1b;强大的智能代码补齐功能&#xff0c;让企业开发化繁为简。 立即获取MyEclipse v2025.1正式版 具…

按键长按代码

这些代码都存放在定时器中断中。中断为100ms中断一次。 数据判断&#xff0c;看的懂就看吧

在 macOS 上连接 PostgreSQL 数据库(pgAdmin、DBeaver)

在 macOS 上连接 PostgreSQL 数据库 pgAdmin 官方提供的图形化管理工具&#xff0c;支持 macOS。 下载地址&#xff1a;https://www.pgadmin.org/ pgAdmin 4 是对 pgAdmin 的完全重写&#xff0c;使用 Python、ReactJs 和 Javascript 构建。一个用 Electron 编写的桌面运行时…

FTP协议和win server2022安装ftp

FTP协议简介 FTP&#xff08;File Transfer Protocol&#xff0c;文件传输协议&#xff09;是一种用于在网络上的计算机之间传输文件的标准网络协议。它被广泛应用于服务器与客户端之间的文件上传、下载以及管理操作。FTP支持多种文件类型和结构&#xff0c;并提供了相对简单的…

人工智能——AdaBoost算法

目录 摘要 13 AdaBoost算法 13.1 本章工作任务 13.2 本章技能目标 13.3 本章简介 13.4 编程实战 13.5 本章总结 13.6 本章作业 本章已完结! 摘要 本章实现的工作是:首先采用Python语言读取数据并构造训练集和测试集。然后建立AdaBoost模型,利用训练集训练该模型,…

DFS 蓝桥杯

最大数字 问题描述 给定一个正整数 NN 。你可以对 NN 的任意一位数字执行任意次以下 2 种操 作&#xff1a; 将该位数字加 1 。如果该位数字已经是 9 , 加 1 之后变成 0 。 将该位数字减 1 。如果该位数字已经是 0 , 减 1 之后变成 9 。 你现在总共可以执行 1 号操作不超过 A…

【开发经验】调试OpenBMC Redfish EventService功能

EventService功能是Redfish规范中定义的一种事件日志的发送方式。用户可以设置订阅者信息(通常是一个web服务器)&#xff0c;当产生事件日志时&#xff0c;OpenBMC可以根据用户设置的订阅者信息与对日志的筛选设置&#xff0c;将事件日志发送到订阅者。 相比于传统的SNMPTrap日…

中断嵌套、中断咬尾、中断晚到

中断咬尾&#xff08;Tail-Chaining&#xff09;是一种通过减少上下文切换开销来实现中断连续响应的高效机制&#xff0c;其核心在于避免重复的出栈和入栈操作&#xff0c;从而显著降低中断延迟。以下是具体原理及实现方式&#xff1a; 中断咬尾的运作机制 当多个中断请求连续…

Vue2下载二进制文件

后端&#xff1a; controller: GetMapping(value "/get-import-template")public void problemTemplate(HttpServletRequest request, HttpServletResponse response) throws Exception {iUserService.problemTemplate(request, response);} service: void probl…

Ubuntu小练习

文章目录 一、远程连接1、通过putty连接2、查看putty运行状态3、通过Puuty远程登录Ubuntu4、添加新用户查看是否添加成功 5、用新用户登录远程Ubuntu6、使用VNC远程登录树莓派 二、虚拟机上talk聊天三、Opencv1、简单安装版&#xff08;适合新手安装&#xff09;2、打开VScode特…

996引擎-疑难杂症:Ctrl + F9 编辑好的UI进入游戏查看却是歪的

Ctrl F9 编辑好UI后&#xff0c;进入游戏查看却是歪的。 检查Ctrl F10 是否有做过编辑。可以找到对应界面执行【清空】

WinForm真入门(5)——控件的基类Control

控件的基类–Control 用于 Windows 窗体应用程序的控件都派生自 Control类并继承了许多通用成员,这些成员都是平时使用控件的过程最常用到的。无论要学习哪个控件的使用&#xff0c;都离不开这些基本成员&#xff0c;尤其是一些公共属性。由于 Conlrol 类规范了控件的基本特征…

RAG(检索增强生成)系统,提示词(Prompt)表现测试(数据说话)

在RAG(检索增强生成)系统中,评价提示词(Prompt)设计是否优秀,必须通过量化测试数据来验证,而非主观判断。以下是系统化的评估方法、测试指标和具体实现方案: 一、提示词优秀的核心标准 优秀的提示词应显著提升以下指标: 维度量化指标测试方法事实一致性Faithfulness …

Appium的学习总结-Inspector参数设置和界面使用(5)

环境搭建好后&#xff0c;怎么使用呢&#xff1f; 环境这里使用的是&#xff1a; Appium的Server端GUI 22版本 Inspector需要单独下载安装&#xff0c;GUI里并没有集成。 &#xff08;使用Appium v1.22.0,查看元素信息需要另外安装下载Appium Inspector&#xff09; 操作&…

I/O进程3

day3 五、进程 7.函数接口 7.1创建子进程 pid_t fork(void);功能&#xff1a;创建子进程返回值&#xff1a;成功&#xff1a;在父进程中&#xff1a;返回子进程的进程号 >0 在子进程中&#xff1a;返回值为0&#xff1b; 失败&#xff1a;-1并设置errno 特点 1.子进程几乎…

k8s 1.24.17版本部署(使用Flannel插件)

1.k8s集群环境准备 推荐阅读: https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 1.1 环境准备 环境准备:硬件配置: 2core 4GB磁盘: 50GB操作系统: Ubuntu 22.04.04 LTSIP和主机名:10.0.0.231 master23110.0.0.232 worker23210.0…