学习笔记——C++运算符之算术运算符

C++中运算符包含诸多种类,其中有:算术运算符,赋值运算符,比较运算符和逻辑运算符

每一种运算符及其作用如下表所示:

一,算术运算符1,加减乘除

其中,“+”,“-”运算符既可以代表加减运算,也可表示一个数的正负

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a1=10;
	int b1=3;
	
	cout<<a1+b1<<endl;//13 
	cout<<a1-b1<<endl;//7
	cout<<a1*b1<<endl;//30
	cout<<a1/b1<<endl;//3 10/3显然是循环小数,但在编译程序中,两个整数相除,结果依然是整数,将小数部分去除。 
    
	int a2=10;
	int b2=20;
	cout<<a2/b2<<endl;//0.5,保留整数部分,结果为0 
	
	int a3=10;
	int b3=0;
	cout<<a3/b3<<endl;//异常 除数不能当分母,运行中会直接造成程序中断(非法程序) 
	
	//两个小数可以相除
	double d1=0.5;
	double d2=0.25;
	cout<<d1/d2<<endl; //2
	
	double d3=0.5;
	double d4=0.22;
	cout<<d3/d4<<endl;//2.27273
} 

运算结果:

从上述运算结果也可以看出,编译器在运算a3/b3时,即10/0便直接退出程序了,因为该代码段为非法

2,取模运算%

取模运算即是求余数,如:10%3=1     10%20=10

    int a4=10;
	int b4=3;
	cout<<a4%b4<<endl;//1
	
	int a5=10;
	int b5=20;
	cout<<a5%b5<<endl;//10
	
	int a6=10;
	int b6=0;
	cout<<a6%b6<<endl; //非法运算 
	//两个数相除除数不能为0,因此也做不了取模运算 
	double d1=3.14;
	double d2=1.1;
	cout<<d1%d2<<endl;//非法运算 
	//另外,C++规定两个小数不能做取模运算 

此外,关于取模运算,C++中还规定了两条规则:1,两个数相除除数不能为0,因此也做不了取模运算;2,取模运算的数必须是整数,两个小数不能做取模运算。

3,递增递减运算符 “++”,“--”

其中,递增递减运算符还有前置和后置的区别。

前置和后置的区别主要在于(以递增为例,递减类似):

前置递增:先让变量+1,然后进行相应表达式的运算;

后置递增:先进行相应表达式的运算,然后让变量+1;

#include<bits/stdc++.h>
using namespace std;
int main(){
	//1,前置递增
	int a=10;
	++a;
	cout<<"a="<<a<<endl; //a=11
	//2,后置递增 
	int b=10;
	b++;
	cout<<"b="<<b<<endl;//b=11
	//3,前置和后置的区别
	//前置递增,先让变量+1,然后进行表达式运算
	int a2=10;
	int b2=++a2*10;//b2=11*10,先对a2+1,再进行运算 
	cout<<"a2="<<a2<<endl;//a2=11
	cout<<"b2="<<b2<<endl;//b2=110
	//后置递增,先进行表达式运算,后让变量+1
	int a3=10;
	int b3=a3++*10;//b3=10*10,先进行表达式运算,运算结束后再将a3+1 
	cout<<"a3="<<a3<<endl;//a3=11
	cout<<"b3="<<b3<<endl;//b3=100
} 

输出结果:

总结:前置递增先对变量进行++,再计算表达式,后置递增则相反。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT上位机开发(数据库sqlite编程)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 编写软件的时候&#xff0c;如果用户的数据比较少&#xff0c;那么用json保存是非常方便的。但是一旦数据量大了之后&#xff0c;建议还是用数据库…

编程语言的未来:贴近人类、灵活高效与探索无限

编程语言的未来&#xff1f; 在当今的科技潮流中&#xff0c;编程语言是至关重要的一环&#xff0c;更是赋能科技行业的基础工具。我深信&#xff0c;未来的编程语言可能将朝着更贴近人类、灵活高效和面向无限可能的方向发展。 人性化是我预期的第一个趋势。未来的编程语言将…

如何解决找不到mfc100u.dll无法运行程序问题,分享四种靠谱的方法

在日常使用电脑的过程中&#xff0c;我们可能会遇到各种问题&#xff0c;其中之一就是找不到mfc100u.dll的困扰。这个问题主要是因为mfc100u.dll是Microsoft Foundation Class&#xff08;MFC&#xff09;库中的一个版本特定的DLL文件&#xff0c;它是Visual Studio 2010及更早…

轻松识别几个小时的长音视频文件

前言 之前的文章绍一个准确率非常高的语音识别框架&#xff0c;但那个只能识别实时的短音频&#xff0c;如果想要识别一个非常长的音频&#xff0c;几十分钟&#xff0c;甚至几个小时&#xff0c;那之前的那个是做不到的所以就有了本文。本文介绍搭建一个长语音识别服务&#…

LeetCode刷题:面试题 02.01. 移除重复节点

题目&#xff1a; 是否独立完成&#xff1a;算是&#xff0c;但是使用自己的办法时间复杂度会超标 解题思路&#xff1a; 1.双循环嵌套&#xff0c;定义快慢节点&#xff0c;双层嵌套循环&#xff0c;如果值一样则剔除&#xff0c;但是时间复杂度为O&#xff08;n&#xff09;…

深度卷积生成对抗网络(DCGAN)|完整代码实现

生成对抗网络&#xff08;GAN&#xff09;由Ian Goodfellow在2014年提出。GAN通过训练两个神经网络解决了非监督问题。这两个网络一个称为生成网络&#xff0c;一个称为判别网络。 事实上&#xff0c;该网络的训练过程很有趣。我们可以借助一个例子来理解。最初&#xff0c;伪…

强化学习的数学原理学习笔记 - RL基础知识

文章目录 Roadmap&#x1f7e1;基础概念贝尔曼方程&#xff08;Bellman Equation&#xff09;基本形式矩阵-向量形式迭代求解状态值 vs. 动作值 &#x1f7e1;贝尔曼最优方程&#xff08;Bellman Optimality Equation&#xff0c;BOE&#xff09;基本形式迭代求解 参考资料&…

服务器不稳定是什么意思?有哪些表现

在当今的信息化时代&#xff0c;服务器已经成为企业和组织不可或缺的基础设施。然而&#xff0c;由于各种原因&#xff0c;服务器可能会出现不稳定的情况&#xff0c;给企业和组织带来不必要的损失和风险。那么&#xff0c;什么是服务器不稳定&#xff0c;它又有哪些表现呢&…

35岁的程序员,见到领导就躲,害怕跟领导沟通,你被说中了吗?

35岁的程序员&#xff0c;见到领导就躲&#xff0c;害怕跟领导沟通&#xff0c;你被说中了吗&#xff1f; 35岁的小王是一名项目经验丰富、解决问题能力强的资深程序员&#xff0c;然而却唯独有一个软肋&#xff1a;害怕碰见领导&#xff0c;害怕跟领导沟通。 我们不经要问&a…

西电期末1028.信号解调

一.题目 二.分析与思路 题越来越水了 三.代码实现 #include<bits/stdc.h>//万能头 int main() {int n;int a,b;//坐标for(int i0;i<n;i){scanf("%d%d",&a,&b);if((a-4)*(a-4)(b-4)*(b-4)>(a4)*(a4)(b4)*(b4))printf("2 ");else pri…

STM32 基础知识(探索者开发板)--135讲 ADC转换

ADC定义&#xff1a; ADC即模拟数字转换器&#xff0c;英文详称 Analog-to-digital converter&#xff0c;可以将外部的模拟信号转换 ADC数模转换中一些常用函数&#xff1a; 1. HAL_ADC_Init 函数 HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc); 初始化ADC 形参&…

Redis 持久化——AOF

文章目录 为什么需要AOF?概念持久化查询和设置1. 查询AOF启动状态2. 开启AOF持久化2.1 命令行启动AOF2.2 配置文件启动 AOF 3. 触发持久化3.1 自动触发3.3 手动触发 4. AOF 文件重写4.1 什么是AOF重写&#xff1f;4.2 AOF 重写实现4.3 AOF 重写流程 5. 配置说明6. 数据恢复6.1…

dp--118.杨辉三角/easy 理解度A

118.杨辉三角 1、题目2、题目分析3、解题步骤4、复杂度最优解代码示例5、抽象与扩展 1、题目 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[…

Spring+Vue实战项目环境准备跑通程序

SpringVue 源项目 后端&#xff1a; 首先在GitHub上克隆项目到本地&#xff08;zip包下载/sourcetree拉取/gitbash克隆&#xff09;。 https://github.com/songboriceman/doubao_community_backend 然后下载Lombok安装到你的IDE&#xff08;eclipse&#xff09;。 https://p…

如何将手机中termux用电脑的vnc显示

在电脑中我们同样需要下载 vnc 这里填写手机上的 IP&#xff1a;端口号 我的是 10.11.166.219:5902 下面填名字然后 手机端 输入sshd开始ssh这边就可以连接啦

跨平台开发教学:构建同时支持iOS和Android的教育网校APP

当下&#xff0c;教育行业也逐渐迎来了数字化转型的时代。构建一款支持iOS和Android的教育网校APP&#xff0c;不仅可以提供更好的用户体验&#xff0c;还能扩大应用的覆盖面&#xff0c;满足不同用户群体的需求。 一、选择合适的跨平台开发框架 在开始构建教育网校APP之前&a…

14_IO_其他流

文章目录 数据流DataOutputStream数据输出流DataInputStream数据输入流 打印流PrintStream字节打印流PrintWriter字符打印流 标准输入输出流标准输入流标准输出流 对象流(序列化与反序列化流)ObjectOutputStream序列化流ObjectInputStream反序列化流 RandomAccessFile随机访问文…

八大算法排序@快速排序、递归版本一(C语言版本)

目录 快速排序版本一概念算法思想一二三 快排步骤代码实现时间复杂度空间复杂度特性总结 快速排序版本一 概念 快速排序&#xff08;Quicksort&#xff09;是一种高效的排序算法&#xff0c;它是由英国计算机科学家 Tony Hoare 在1960年提出的。快速排序是基于分治&#xff08…

STM32深入系列02——BootLoader分析与实现

文章目录 1. STM32程序升级方法1.1 ST-Link / J-link下载1.2 ISP&#xff08;In System Programing&#xff09;1.3 IAP&#xff08;In Applicating Programing&#xff09;1.3.1 正常程序运行流程1.3.2 有IAP时程序运行流程 2. STM32 Bootloader实现2.1 方式一&#xff1a;Boo…