C++ 修饰符、存储类、运算符、循环、判断

一、C++修饰符类型:

C++允许在char、int、double数据类型前放置修饰符。

数据类型修饰符:

◆ signed:表示变量可以存储负数。对于整型变量来说,signed 可以省略,因为整型变量默认为有符号类型。

◆ unsigned:表示变量不能存储负数。对于整型变量来说,unsigned 可以将变量范围扩大一倍。

◆ short:表示变量的范围比 int 更小。short int 可以缩写为 short。

◆ long:表示变量的范围比 int 更大。long int 可以缩写为 long。

◆ long long:表示变量的范围比 long 更大。C++11 中新增的数据类型修饰符。

◆ float:表示单精度浮点数。

◆ double:表示双精度浮点数。

◆ bool:表示布尔类型,只有 true 和 false 两个值。

◆ char:表示字符类型。

◆ wchar_t:表示宽字符类型,可以存储 Unicode 字符。

C++中的类型限定符:

限定符

含义

const

const 定义常量,表示该变量的值不能被修改。

volatile

修饰符 volatile 告诉该变量的值可能会被程序以外的因素改变,如硬件或其他线程。。

restrict

由 restrict 修饰的指针是唯一一种访问它所指向的对象的方式。只有 C99 增加了新的类型限定符 restrict。

mutable

表示类中的成员变量可以在 const 成员函数中被修改。

static

用于定义静态变量,表示该变量的作用域仅限于当前文件或当前函数内,不会被其他文件或函数访问。

register

用于定义寄存器变量,表示该变量被频繁使用,可以存储在CPU的寄存器中,以提高程序的运行效率。

二、C++存储类:

存储类定义C++程序中变量/函数的范围和声明周期。C++程序可用的存储类:static、extern、mutable。

Static存储类表示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次进入和离开作用域时进行创建和销毁。static修饰符也可以应用于全局变量,使变量的作用域限制在声明的文件内。

extern存储类用于提供一个全局变量的引用。全局变量对所有的程序文件都是可见的。extern是用来在另一个文件中声明一个全局变量或函数。extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候。

mutable仅适用于类的对象。mutable成员可以通过const成员函数修改。

三、C++运算符:

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++提供算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、杂项运算符。

9.1、算数运算符:

运算符

描述

+

把两个操作数相加

-

从第一个操作数中减去第二个操作数

*

把两个操作数相乘

/

分子除以分母

%

取模运算符,整除后的余数

++

自增运算符,整数值增加 1

--

自减运算符,整数值减少 1

9.2、关系运算符:

运算符

描述

==

检查两个操作数的值是否相等,如果相等则条件为真。

!=

检查两个操作数的值是否相等,如果不相等则条件为真。

>

检查左操作数的值是否大于右操作数的值,如果是则条件为真。

<

检查左操作数的值是否小于右操作数的值,如果是则条件为真。

>=

检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。

<=

检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。

9.3、逻辑运算符:

运算符

描述

&&

称为逻辑与运算符。如果两个操作数都 true,则条件为 true。

||

称为逻辑或运算符。如果两个操作数中有任意一个 true,则条件为 true。

!

称为逻辑非运算符。用来逆转操作数的逻辑状态,如果条件为 true 则逻辑非运算符将使其为 false。

9.4、位运算符:

运算符

描述

&

按位与操作,按二进制位进行"与"运算。运算规则:

0&0=0;   0&1=0;    1&0=0;     1&1=1;

|

按位或运算符,按二进制位进行"或"运算。运算规则:

0|0=0;   0|1=1;   1|0=1;    1|1=1;

^

异或运算符,按二进制位进行"异或"运算。运算规则:

0^0=0;   0^1=1;   1^0=1;  1^1=0;

~

取反运算符,按二进制位进行"取反"运算。运算规则:

~1=-2;   ~0=-1;

<<

二进制左移运算符。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。

>>

二进制右移运算符。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

9.5、赋值运算符:

运算符

描述

=

简单的赋值运算符,把右边操作数的值赋给左边操作数

+=

加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数

-=

减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数

*=

乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数

/=

除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数

%=

求模且赋值运算符,求两个操作数的模赋值给左边操作数

<<=

左移且赋值运算符

>>=

右移且赋值运算符

&=

按位与且赋值运算符

^=

按位异或且赋值运算符

|=

按位或且赋值运算符

9.6、杂项运算符:

运算符

描述

sizeof

sizeof 运算符返回变量的大小。例如,sizeof(a) 将返回 4,其中 a 是整数。

Condition ? X : Y

条件运算符。如果 Condition 为真 ? 则值为 X : 否则值为 Y。

,

逗号运算符会顺序执行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值。

.(点)和 ->(箭头)

成员运算符用于引用类、结构和共用体的成员。

Cast

强制转换运算符把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2。

&

指针运算符 & 返回变量的地址。例如 &a; 将给出变量的实际地址。

*

指针运算符 * 指向一个变量。例如,*var; 将指向变量 var。

C++中的运算符优先级:

类别

运算符

结合性

后缀

() [] -> . ++ - -

从左到右

一元

+ - ! ~ ++ - - (type)* & sizeof

从右到左

乘除

* / %

从左到右

加减

+ -

从左到右

移位

<< >>

从左到右

关系

< <= > >=

从左到右

相等

== !=

从左到右

位与 AND

&

从左到右

位异或 XOR

^

从左到右

位或 OR

|

从左到右

逻辑与 AND

&&

从左到右

逻辑或 OR

||

从左到右

条件

?:

从右到左

赋值

= += -= *= /= %=>>= <<= &= ^= |=

从右到左

逗号

,

从左到右

四、C++循环:

循环类型:

循环类型

描述

while 循环

当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。

for 循环

多次执行一个语句序列,简化管理循环变量的代码。

do...while 循环

除了它是在循环主体结尾测试条件外,其他与 while 语句类似。

嵌套循环

您可以在 while、for 或 do..while 循环内使用一个或多个循环。

循环控制语句:

控制语句

描述

break 语句

终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。

continue 语句

引起循环跳过主体的剩余部分,立即重新开始测试条件。

goto 语句

将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。

无线循环:

For(;;)

While(1)

  • C++判断:

判断语句:

语句

描述

if 语句

一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。

if...else 语句

一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。

嵌套 if 语句

您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。

switch 语句

一个 switch 语句允许测试一个变量等于多个值时的情况。

嵌套 switch 语句

您可以在一个 switch 语句内使用另一个 switch 语句。

?:条件运算符:

Exp1 ? Exp2 : Exp3;

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

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

相关文章

metersphere 创建场景, 自动动态变换参数值,实现接口自动化测试。

创建场景 创建产品变量 添加数值 添加后点击确定 点击右下角 号 点击 循环控制器 写循环 创建/导入接口 选择运行环境&#xff0c; 没有的话新建一个 需要点击引用环境 保存后点击 调试 成功做到每次请求的参数是列表里的 10

怎么提高拍摄视频画质和清晰度?这几个方法一定要学会

一、提高拍摄视频画质和清晰度 1、分辨率 分辨率就是我们常说的480P、720P、1080P、4K等等&#xff0c;分辨率越大&#xff0c;在某种程度上视频也就越清晰。虽然原理是这样的&#xff0c;但在不同平台上传视频也会影响最终的画质。 比如超高分辨率的视频不适合在某音。因为…

BUUCTF [BJDCTF2020]纳尼 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。来源&#xff1a;https://github.com/BjdsecCA/BJDCTF2020 密文&#xff1a; 下载附件&#xff0c;解压得到6.gif和题目.txt文件。 解题思路&#xff1a; 1、查看题目.txt文件&a…

形态学操作—开运算

开运算&#xff08;Opening&#xff09;原理和作用&#xff1a; 开运算是图像形态学处理中的一种操作&#xff0c;它由两个步骤组成&#xff1a;先进行腐蚀&#xff08;Erosion&#xff09;&#xff0c;再进行膨胀&#xff08;Dilation&#xff09;。开运算的主要目的是消除图像…

2

【任务 2】私有云服务运维[10 分] 【适用平台】私有云 【题目 1】OpenStack 开放镜像权限[0.5 分] 使 用 OpenStack 私 有 云 平 台 &#xff0c; 在 OpenStack 平台的 admin 项 目 中 使 用 cirros-0.3.4-x86_64-disk.img 镜像文件创建名为 glance-cirros 的镜像&#xff0c;通…

网络知识学习(笔记二)

ios模型规定的网络模型一共有7层&#xff0c;但是实际使用过程中&#xff0c;4层的TCP/IP模型是经常使用的&#xff0c;网络知识学习笔记里面也是基于4层TCP/IP模型进行分析的&#xff0c;前面已经讲了&#xff1a;&#xff08;1&#xff09;物理层&#xff0c;&#xff08;2&a…

VMware 系列:戴尔服务器配置(格式数据、RAID5、安装ESXI)以及相关问题

戴尔服务器配置(格式数据、RAID5、安装ESXI)以及相关问题 一. 戴尔服务器配置(格式数据、RAID5、安装ESXI)一、戴尔服务器数据格式化1.进入服务器bios界面2.启动虚拟控制台后按F2键进入系统设置界面3.进入设置界面,然后选择Device Settings4.然后进入如下界面,选择Integr…

Linux系统管理与服务器安全:构建稳健云数据中心

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 在当今数字化时代&#xff0c;云数据中心已经成…

FeignClient相关调用逻辑

https://www.cnblogs.com/chiangchou/p/feign.html#_label3_2

最受欢迎的猫罐头有那些?精选的5款热门猫罐头推荐!

新手养猫很容易陷入疯狂购买的模式&#xff0c;但有些品牌真的不能乱买&#xff01;现在的大环境不太好&#xff0c;我们需要学会控制自己的消费欲望&#xff0c;把钱花在刀刃上&#xff01;现在宠物市场真的很内卷&#xff0c;很多品牌都在比拼产品的数据和营养成分。很多铲屎…

物联网AI MicroPython学习之语法 WDT看门狗外设

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; WDT 介绍 模块功能: 看门狗WDT&#xff08;WatchDog Timer&#xff09;外设驱动模块 接口说明 WDT - 构建WDT对象 函数原型&#xff1a;WDT(timeout)参数说明&#xff1a; 参数类型必选参数&#xff1f…

springboot内置Tomcat流程

1、org.springframework.boot.SpringApplication#initialize setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));加载了org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext 2、spring refres…

12-25v转3.3v高清水下钓鱼摄像头电源供电芯片方案

高清水下钓鱼摄像头电源芯片方案&#xff1a;12-25V转3.3V&#xff0c;支持超宽电压输入范围和30米长线视频放大 在水下钓鱼摄像头设计中&#xff0c;为了实现高清画质和稳定的电源供应&#xff0c;需要一款能够将12-25V转换为3.3V输出的高效电源芯片。这款电源芯片不仅支持高…

Java使用x-www-form-urlencoded发请求

平常在开发过程中用的最多的就是JSON格式&#xff0c;请求编码就是 application/json&#xff0c;但偏偏有些接口是 x-www-form-urlencoded&#xff0c;怎么办呢&#xff0c;重新封装喽 在POSTMan工具是叫 x-www-form-urlencoded 在 APIpost工具中是叫 urlencoded Map<Str…

数据结构-map

数据结构-哈希算法 哈希原理 hash哈希是一种算法 y hash(x) 给定一个x一定得到固定的yx是输入&#xff0c;x取值范围称为输入空间&#xff0c;x是任意值&#xff0c;x是任意长度&#xff08;go中字节序列&#xff09;y是输出&#xff0c;y取值范围称为输出空间&#xff0c;…

Spring Boot 邮件发送(五种类型的邮件)

邮件协议&#xff1a; SMTP、POP3、IMAP SMTP 协议全称为 Simple Mail Transfer Protocol&#xff0c;译作简单邮件传输协议&#xff0c;它定义了邮件客户端软件与 SMTP 服务器之间&#xff0c;以及 SMTP 服务器与 SMTP 服务器之间的通信规则。 用户先将邮件投递到腾讯的 SMT…

C#每天复习一个重要小知识day3:随机数的生成

目录 格式&#xff1a; 生成随机数&#xff1a; 生成一个0-100的随机数&#xff1a; 以下是更详细的代码示例&#xff1a; 在C#中&#xff0c;可以使用Random类来生成随机数。这个类提供了多种方法来生成不同类型的随机数。 格式&#xff1a; Random 随机变量名(r) new …

论文阅读 Forecasting at Scale (一)

最近在看时间序列的文章&#xff0c;回顾下经典 论文地址 项目地址 Forecasting at Scale 摘要1、介绍2、时间业务序列的特点3、Prophet预测模型3.1、趋势模型3.1.1、非线性饱和增长3.1.2、具有变化点的线性趋势3.1.3、自动转换点选择3.1.4、趋势预测的不确定性 摘要 预测是一…

暗物质探测器认知教学VR元宇宙平台打破传统束缚

“飞船正在上升&#xff0c;马上就冲出大气层了!”这是一位在1&#xff1a;1还原的神舟飞船返回舱内借助VR设备置身元宇宙世界&#xff0c;沉浸式体验升空全过程的游客兴奋地说道。不仅如此&#xff0c;在载人飞船训练期&#xff0c;元宇宙技术为航天员虚拟一个逼真的太空世界&…

vue3 iconify 图标几种使用 并加载本地 svg 图标

iconify iconify 与 iconify/vue 使用 下载 pnpm add iconify/vue -D使用 import { Icon } from "iconify/vue";<template><Icon icon"mdi-light:home" style"color: red; font-size: 43px" /><Icon icon"mdi:home-flo…