C++学习之运算符与表达式
算数运算符
基本的算数运算有加法、减法、乘法、除法和取模(求余数),对应的算数运算符分别为:+、-、*、/、%。至于用法,大家应该耳熟能详,这里不再过多赘述。
自增与自减运算符
| 运算符 | 说明 |
|---|---|
| ++ | 自增运算符,将数值增加一 |
| - - | 自减运算符,将数值减少一 |
该运算符主要有前置和后置两种用法,很多人在刚开始接触的时候不知道区别,这里详细介绍一下:
eg:i=2; a=i++;这里是先把 i 的值赋给 a,然后i再加一,最后的结果是a=2,i=3;
而i=2; a=++i;这里是 i 的值先加一,然后再将 i 赋给 a,最后的结果是a=3,i=3。
强制类型转换运算符
强制类型转换的两种形式:
- (类型名)(表达式):如果表达式是单个变量可以不用括号
- 类型名(表达式)
使用:
/*第一种用法*/
(double)a //将a转成double类型
(int)(x+y) //将x+y转成整型/*第二种用法*/
double(a)
int(x+y)
关系运算符
| 运算符 | 描述 |
|---|---|
| == | 检查两个操作数的值是否相等,如果相等则条件为真 |
| != | 检查两个操作数的值是否相等,如果不相等则条件为真 |
| > | 检查左操作数是否大于右操作数的值,如果是则条件为真 |
| < | 检查左操作数是否小于右操作数的值,如果是则条件为真 |
| >= | 检查左操作数是否大于等于右操作数的值,如果是则条件为真 |
| <= | 检查左操作数是否小于等于右操作数的值,如果是则条件为真 |
关系运算符表达式的值是“真”和“假”,用“1”和“0”来表示。
位运算符
| 运算符 | 描述 |
|---|---|
| & | 按位与,两个操作数同一位都是1结果才为1,其他的均为0 |
| 丨 | 按位或,两个操作数同一位都是0结果才为0,其他的均为1 |
| ^ | 按位异或,两个操作数同一位不同时为1则对应结果为1,否则为0 |
| ~ | 按位取反,将操作数转化为二进制表示,然后将二进制为由1变为0,由0变为1 |
| >> | 二进制右移运算符,若a=0000 1000,b=a>>3,则b=0000 0001 |
| << | 二进制左移运算符,若a=0000 1000,b=a<<3,则b=0100 0000 |
逻辑运算符
| 运算符 | 描述 |
|---|---|
| && | 逻辑与运算符,两个操作数都是非0值,这条件为真 |
| 丨丨 | 逻辑或运算符,两个操作数有任意一个条件非0,则条件为真 |
| ! | 逻辑非运算符,如果为真则将其转为假,反之亦然 |
条件运算符
条件运算符?:是一个三目运算符
语法:
表达式1 ? 表达式2:表达式3
如果满足表达式1的条件,则求解结果为表达式2,否则为表达式3.
eg:
// 求a,b中的最大值
max=a>b?a:b;
赋值运算符
“=”就是赋值运算符,把右边的操作数赋值给左边的操作数。
注意:
- 赋值不是等号,具有方向性
- “左值”必须是放在内存中可以访问且可以合法修改值的存储单元,通常只能是变量名
- “右值”可以是常量,也可以是变量或者表达式,但一定要能取得确定的值
- 如果赋值运算符两侧的类型不一样,但是都是数值型或者字符型,在赋值时会自动进行类型转换;将浮点型数据(包括单、双精度)赋给整型变量时,舍弃其小数部分
复合赋值运算符
| 运算符 | 描述 |
|---|---|
| += | 加且赋值运算符,a+=b相当于a=a+b |
| -= | 减且赋值运算符,a-=b相当于a=a-b |
| *= | 乘且赋值运算符,a*=b相当于a=a*b |
| /= | 除且赋值运算符,a/=b相当于a=a/b |
| %= | 求模且赋值运算符,a%=b相当于a=a%b |
| <<= | 左移且赋值运算符,c<<=2相当于c=c<<2 |
| >>= | 右移且赋值运算符,c>>=2相当于c=c>>2 |
| &= | 按位与且赋值运算符,c&=2相当于c=c&2 |
| ^= | 按位异或且赋值运算符,c^=2相当于c=c ^2 |
| 丨= | 按位或且赋值运算符,c丨=2相当于c=c丨2 |
相关文章:
C++学习之运算符与表达式
算数运算符 基本的算数运算有加法、减法、乘法、除法和取模(求余数),对应的算数运算符分别为:、-、*、/、%。至于用法,大家应该耳熟能详,这里不再过多赘述。 自增与自减运算符 运算符说明自增运算符&…...
vue使用谷歌地图实现地点查询
效果 代码 首先在index.html中引入谷歌地图资源 <script src"https://maps.googleapis.com/maps/api/js?key你的api密钥&librariesplaces"></script>页面中 <template><div class"pac-card div-style" id"pac-card"…...
前端该了解的网络知识
网络 前端开发需要了解的网络知识 URL URL(uniform resource locator,统一资源定位符)用于定位网络服务. URL是一个固定格式的字符串 它表达了: 从网络中哪台计算机(domain)中的哪个服务(port),获取服务器上资源的路径(path),以及要用什么样的协议通信(schema). 注意: 当…...
python3在虚拟环境实用vscode调试错误输出ModuleNotFoundError: No module named ‘django‘解决方法
Exception has occurred: ImportError Couldnt import Django. Are you sure its installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?File "/data/mountain-backend/src/manage.py", line 8, i…...
如何获得一个Oracle 23c免费开发者版
获取23c开发者版 简单介绍可参考这里。 获取数据库可以参考这篇文章Introducing Oracle Database 23c Free – Developer Release或这里。 Docker Image 这是最快的方法。在OCI上创建一个计算实例,然后就可以拉取image使用了。 docker的安装和配置不赘述了。 …...
机器学习策略二——优化深度学习系统
进行误差分析 (Carrying out error analysis) 如果你希望让学习算法能够胜任人类能做的任务,但你的学习算法还没有达到人类的表现,那么人工检查一下你的算法犯的错误也许可以让你了解接下来应该做什么。这个过程称为错误分析。 假设你正在调试猫分类器…...
Pytorch Advanced(三) Neural Style Transfer
神经风格迁移在之前的博客中已经用keras实现过了,比较复杂,keras版本。 这里用pytorch重新实现一次,原理图如下: from __future__ import division from torchvision import models from torchvision import transforms from PIL…...
英飞凌TC3xx--深度手撕HSM安全启动(三)--TC3xx HSM系统架构
今天聊TC3xx HSM系统,包括所用内核、UCB相关信息、Host和HSM交互方式。 1、HSM系统架构 下图来源于英飞凌官网培训材料。 TC3xx的HSM内核是一颗32位的ARM Cortex M3,主频可达100MHz,支持对称算法AES128、非对称算法PKC(Public Key Crypto) ECC256、Hash SHA2,以及T…...
黑马JVM总结(五)
(1)方法区 它是所有java虚拟机 线程共享的区,存储着跟类的结构相关的信息,类的成员变量,方法数据,成员方法,构造器方法,特殊方法(类的构造器) 方法区在虚拟机…...
C语言入门Day_18 判断和循坏的小结
目录 前言: 1.判断 2.循环 3.课堂笔记 4.思维导图 前言: 判断语句和循环语句都可以大致分为三个部分,第一个部分是固定的语法格式;第二部分是代码的执行顺序,第三部分是判断和循环成立与否的判断条件。 1.判断 1…...
mac 好用的工具推荐
mac 好用的工具推荐 落雪:全网的音乐畅听,下载地址:https://github.com/lyswhut/lx-music-desktopMotrix: 免费下载工具,下载地址:https://xclient.info/s/motrix.html#versionsDownie:视频下载工具&#x…...
星际争霸之小霸王之小蜜蜂(十二)--猫有九条命
系列文章目录 星际争霸之小霸王之小蜜蜂(十一)--杀杀杀 星际争霸之小霸王之小蜜蜂(十)--鼠道 星际争霸之小霸王之小蜜蜂(九)--狂鼠之灾 星际争霸之小霸王之小蜜蜂(八)--蓝皮鼠和大…...
【软件分析/静态分析】chapter8 课程11/12 指针分析—上下文敏感(Pointer Analysis - Context Sensitivity)
🔗 课程链接:李樾老师和谭天老师的: 南京大学《软件分析》课程11(Pointer Analysis - Context Sensitivity I)_哔哩哔哩_bilibili 南京大学《软件分析》课程12(Pointer Analysis - Context Sensitivity II&…...
时间复杂度与空间复杂度详解
时间复杂度与空间复杂度详解🦖 一、算法效率1.1 如何衡量一个算法的好坏1.2 算法的复杂度 二、时间复杂度2.1 时间复杂度的定义2.2 大O的渐进表示法2.3 如何记录表示算法复杂度 三、空间复杂度3.1 空间复杂度的定义3.2 小试牛刀 一、算法效率 1.1 如何衡量一个算法…...
目录操作函数
mkdir函数 rmdir函数 删除空目录 rename函数 换名 chdir函数 修改当前的工作目录 getcwd函数 获取当前工作的路径...
PlantUML入门教程:画时序图
软件工程中会用到各种UML图,例如用例图、时序图等。那我们能不能像写代码一样去画图呢? 今天推荐一款软件工程师的作图利器--PlantUML,它能让你用写代码的方式快速画出UML图。 一、什么是PlantUML? PlantUML是一个允许你快速作出…...
C#范围运算符
C#8.0语法中,范围运算符是一种用于快速截取序列的运算符,其语法为 “start…end”,表示从序列的 “start” 索引处开始,一直截取到"end" 索引处为止(包括 “end” 索引处的元素)。范围运算符主要…...
云数据库知识学习——云数据库产品、云数据库系统架构
一、云数据库产品 1.1、云数据库厂商概述 云数据库供应商主要分为三类。 ① 传统的数据库厂商,如 Teradata、Oracle、IBM DB2 和 Microsoft SQL Server 等。 ② 涉足数据库市场的云供应商,如 Amazon、Google、Yahoo!、阿里、百度、腾讯…...
C++中引用详解!
前言: 本文旨在讲解C中引用的相关操作,以及引用的一些注意事项!搬好小板凳,干货来了! 引用的概念 何谓引用呢?引用其实很容易理解,比如李华这个同学,他因为很调皮,所以…...
VUE3+TS项目无法找到模块“../version/version.js”的声明文件
问题描述 在导入 ../version/version.js 文件时,提示无法找到模块 解决方法 将version.js改为version.ts可以正常导入 注意,因为version.js是我自己写的模块,我可以直接该没有关系,但是如果是引入的其他的第三方包,…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
