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是我自己写的模块,我可以直接该没有关系,但是如果是引入的其他的第三方包,…...
数据结构-堆的实现及应用(堆排序和TOP-K问题)
数据结构-堆的实现及应用[堆排序和TOP-K问题] 一.堆的基本知识点1.知识点 二.堆的实现1.堆的结构2.向上调整算法与堆的插入2.向下调整算法与堆的删除 三.整体代码四.利用回调函数避免对向上和向下调整算法的修改1.向上调整算法的修改2.向下调整算法的修改3.插入元素和删除元素函…...
Spring 条件注解没生效?咋回事
条件注解相信各位小伙伴都用过,Spring 中的多环境配置 profile 底层就是通过条件注解来实现的,松哥在之前的 Spring 视频中也有和大家详细介绍过条件注解的使用,感兴趣的小伙伴戳这里:Spring源码应该怎么学?。 从 Spr…...
96. 不同的二叉搜索树
class Solution { public:int numTrees(int n) {if (n0) {return 1;}vector<int> dp(n1, 0);dp[0] 1;dp[1] 0;for (int i 1; i < n; i) {for (int j 0; j < i; j) {dp[i] dp[j] * dp[i - 1 - j];}}return dp[n];} };...
Android Jetpack 中Hilt的使用
Hilt 是 Android 的依赖项注入库,可减少在项目中执行手动依赖项注入的样板代码。执行 手动依赖项注入 要求您手动构造每个类及其依赖项,并借助容器重复使用和管理依赖项。 Hilt 通过为项目中的每个 Android 类提供容器并自动管理其生命周期,…...
批量采集的时间管理与优化
在进行大规模数据采集时,如何合理安排和管理爬取任务的时间成为了每个专业程序员需要面对的挑战。本文将分享一些关于批量采集中时间管理和优化方面的实用技巧,帮助你提升爬虫工作效率。 1. 制定明确目标并设置合适频率 首先要明确自己所需获取数据的范…...
uniApp监听左右滑动事件
监听左右滑动事件的步骤 1. 添加需要监听滑动事件的元素 在你的页面中,添加需要监听滑动事件的元素。这可以是一个 view、swiper 或其他组件,取决于你的需求。例如: <template><view class"body" touchstart"touc…...
十八、MySQL添加外键?
1、外键 外键是用来让两张表的数据之间建立联系,从而保证数据的一致性和完整性。 注意,父表被关联的字段类型,必须和子表被关联的字段类型一致。 2、实际操作 (1)初始化两张表格: 子表: 父…...
图像文件的操作MATLAB基础函数使用
简介 MATLAB中的图像处理工具箱体统了一套全方位的标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。这里仅仅对常用的基础函数做个使用介绍。 查询图像文件的信息 使用如下函数 imfinfo(filename,fmt) 函数imfinfo返回一个结构体的infoÿ…...
【k8s】Kubernetes版本v1.17.3 kubesphere 3.1.1 默认用户登录失败
1.发帖: Kubernetes版本v1.17.3 kubesphere 3.11 默认用户登录失败 - KubeSphere 开发者社区 2. 问题日志: 2.1问题排查方法 : 用户无法登录 http://192.168.56.100:30880/ 2.2查看用户状态 kubectl get users [rootk8s-node1 ~]# k…...
Mysql加密功能
Mysql加密功能 InnoDB加密功能查询条件问题开启整个数据库加密 InnoDB加密功能 InnoDB是MySQL数据库引擎的一种,它提供了加密存储的功能。具体来说,InnoDB引擎支持以下两种方式的加密存储: 表级加密:InnoDB支持表级加密ÿ…...
深圳企业官网网站建设/重庆森林讲了什么故事
点击蓝字关注我们吧!输入当我们需要和开发交互式工具的时候,需要接收用户的输入,怎么做呢?name input("Name:") age input("Age:") info ---------- info of %s ---------- Name:%s Age&#…...
男做基视频网站/怎么建立网站?
1、判断结构是允许程序针对不同情况执行不同指令序列的控制结构。2、判断在Python中用if语句实现。简单的判断是用一个简单的if来实现的。两路判断通常使用if-else。多路判断用if-elif-else 实现。3、判断基于条件的求值,条件是简单的布尔表达式。布尔表达式结果为t…...
临沂企业自助建站/外贸建站
图解TCP数据报结构以及三次握手(非常详细) TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接…...
ui设计工资一般多少钱/惠州百度seo哪家好
linux相比windows更安全,更稳定,而且是开源的,所以常作为服务器系统使用。因此,搭配lamp也是不可或缺的能力哦。不过,对于不熟悉linux系统的童鞋还是有点困难的。一、准备工作。ubuntu-12.04.1-desktop-i386.iso二、安…...
wordpress 能用的水印/网络推广好做吗?
导读 11月7日,以微信支付为核心微信智慧医疗服务再次创新,由微信支付与互联网团队联手推出医疗保险无纸化手机端快捷理赔,患者无需提供纸质材料,只需通过微信即可在线上快速完成医疗保险理赔。这也是微信首次打通商业保险&#x…...
网上国网推广方案怎么写/知乎关键词排名优化
下面通过一段代码给大家介绍python 使用for 循环实现九九乘法表,具体代码如下所示:#for 循环实现99乘法表for i in range (1,10):for j in range (1,i1):print("{}*{} {:<4}".format(i,j,i*j),end " ")print("")prin…...