当前位置: 首页 > news >正文

一文总结C++运算符的使用方法

1. 算术运算符

算术运算符用于执行基本数学运算,例如加减乘除和取模等操作。下表列出了C++中支持的算术运算符:

运算符描述示例
+加法a+ ++b
减法a-b
乘法a∗ *∗b
/除法a/ //b
取模ab

其中,a和b代表要进行计算的两个变量或值。

(1)加法运算符

加法运算符(+)用于将两个值相加。如果两个操作数都是数字,则它们将被相加。如果其中一个操作数是字符串,则它们将被连接起来。

e.g.

1

2

3

inta = 5;

intb = 3;

intc = a + b;// c的值为8

1

2

3

std::string str1 ="Hello, ";

std::string str2 ="world!";

std::string str3 = str1 + str2;// str3的值为"Hello, world!"

(2)减法运算符

减法运算符(-)用于将第一个操作数减去第二个操作数。

e.g.

1

2

3

inta = 5;

intb = 3;

intc = a - b;// c的值为2

(3)乘法运算符

乘法运算符(*)用于将两个数相乘。

e.g.

1

2

3

inta = 5;

intb = 3;

intc = a * b;// c的值为15

注意,C++中整数除法返回整数结果,即舍去小数部分。

(5)取模运算符

取模运算符(%)返回除法的余数。

e.g.

1

2

3

inta = 7;

intb = 3;

intc = a % b;// c的值为1

2. 关系运算符

关系运算符用于比较两个值并返回布尔值(true或false)。下表列出了C++中支持的关系运算符:

运算符描述示例
==相等a == b
!=不相等a != b
>大于a > b
>=大于等于a >= b
<=小于等于a <= b

其中,a和b代表要进行比较的两个变量或值。

(1)相等和不相等运算符

相等运算符(==)用于比较两个值是否相等。如果它们相等,则返回true,否则返回false。

e.g.

1

2

3

inta = 5;

intb = 3;

boolc = (a == b);// c的值为false

不相等运算符(!=)用于比较两个值是否不相等。如果它们不相等,则返回true,否则返回false。

e.g.

1

2

3

inta = 5;

intb = 3;

boolc = (a != b);// c的值为true

(2)大于和小于运算符

大于运算符(>)用于比较第一个操作数是否大于第二个操作数。如果是,则返回true,否则返回false。

e.g.

1

2

3

inta = 5;

intb = 3;

boolc = (a > b);// c的值为true

小于运算符(<)用于比较第一个操作数是否小于第二个操作数。如果是,则返回true,否则返回false。

e.g

1

2

3

inta = 5;

intb = 3;

boolc = (a < b);// c的值为false

(3)大于等于和小于等于运算符

大于等于运算符(>=)用于比较第一个操作数是否大于或等于第二个操作数。如果是,则返回true,否则返回false。

e.g.

1

2

3

inta = 5;

intb = 3;

boolc = (a >= b);// c的值为true

小于等于运算符(<=)用于比较第一个操作数是否小于或等于第二个操作数。如果是,则返回true,否则返回false。

e.g.

1

2

3

inta = 5;

intb = 3;

boolc = (a <= b);// c的值为false

3. 逻辑运算符

逻辑运算符用于执行布尔逻辑操作。下表列出了C++中支持的逻辑运算符:

运算符描述示例
&&逻辑与a && b
||逻辑或a
!逻辑非!a

其中,a和b代表要进行逻辑运算的两个布尔值。

(1)逻辑与运算符

逻辑与运算符(&&)用于检查两个条件是否都为真。只有当两个条件都为真时,才会返回true,否则返回false。

e.g.

1

2

3

boola =true;

boolb =false;

boolc = (a && b);// c的值为false

(3)逻辑非运算符

逻辑非运算符(!)用于翻转一个布尔值。如果输入为true,则返回false,否则返回true。

e.g.

1

2

boola =true;

boolb = !a;// b的值为false

4. 按位运算符

按位运算符用于操作二进制数据。下表列出了C++中支持的按位运算符:

运算符描述示例
&按位与a & b
|按位或a
^按位异或a ^ b
~取反~a
<<左移a << b
>>右移a >> b

其中,a和b代表要进行按位运算的两个整数。

(1)按位与运算符

按位与运算符(&)将两个二进制数的每一位进行比较,并且如果两位都为1,则该位输出1,否则输出0。

e.g.

1

2

3

inta = 5;// 二进制表示为101

intb = 3;// 二进制表示为011

intc = a & b;// c的值为1,二进制表示为001

(2)按位或运算符

按位或运算符(|)将两个二进制数的每一位进行比较,并且如果任意一位为1,则该位输出1,否则输出0。

e.g.

1

2

3

inta = 5;// 二进制表示为101

intb = 3;// 二进制表示为011

intc = a \| b;// c的值为7,二进制表示为111

(3)按位异或运算符

按位异或运算符将两个整数的二进制表示进行“异或”操作,并返回一个新的整数。当两个比特位相同时,该比特位结果为 0,否则为 1。

e.g.

1

2

3

inta = 5;// 二进制 101

intb = 3;// 二进制 011

intc = a ^ b;// 二进制 110 (即十进制 6)

(4)按位取反运算符

按位取反运算符对整数的二进制表示进行取反操作,并返回一个新的整数。当一个比特位为 0 时,结果为 1,否则为 0。

e.g

1

2

inta = 5;// 二进制 101

intb = ~a;// 二进制 010 (即十进制 2)

(5)左移位运算符

左移位运算符将一个整数的二进制表示向左移动指定的位数,并返回一个新的整数。左移 n 位相当于将这个数乘以 2 的 n 次方。

e.g.

1

2

inta = 5;// 二进制 101

intb = a << 1;// 二进制 1010 (即十进制 10)

(6)右移位运算符

右移位运算符将一个整数的二进制表示向右移动指定的位数,并返回一个新的整数。右移 n 位相当于将这个数除以 2 的 n 次方。

e.g.

1

2

inta = 5;// 二进制 101

intb = a >> 1;// 二进制 10 (即十进制 2)

5. 取地址运算符

C++中,取地址运算符用于获取变量或对象的内存地址,表示为&,并且可以应用于任何变量、指针或对象。使用取地址运算符可以在程序中有效地管理内存和数据结构。

取地址运算符的一般语法如下:

1

2

3

4

5

&variable// 获取变量的地址

&object// 获取对象的地址

&type// 获取类型的地址

复制讲解

其中,“variable”表示要获取地址的变量,“object”表示要获取地址的对象,“type”表示要获取地址的类型。

e.g.

1

2

3

4

5

6

7

inta = 10;

int* ptr = &a;// 使用取地址运算符获取变量a的地址,并将其存储在指针ptr中

cout <<"The value of a is: "<< a << endl;

cout <<"The address of a is: "<< &a << endl;

cout <<"The value of ptr is: "<< ptr << endl;

cout <<"The value pointed to by ptr is: "<< *ptr << endl;

上述代码首先定义一个整数变量“a”,然后使用取地址运算符&获取它的地址,并将其存储在指针“ptr”中。接下来打印出变量“a”的值和地址、指针“ptr”的值以及指针所指向的值。

http://www.jsqmd.com/news/856615/

相关文章:

  • 2026年必看!10款降AI率工具大测评:教你AI降AI与免费降低AI率 - 降AI实验室
  • 手把手教你用STC89C52和DS1302做一个带按键调节的电子时钟(附完整代码)
  • Seraphine:如何通过智能战绩查询和BP辅助提升英雄联盟竞技体验
  • 【工业相机】大恒万兆网相机原生RS232串口调试|无需转换板、直连通信、最简接线教程(实测)
  • M10050 模组 陶瓷天线一体
  • 2026性价比高的客厅地砖批发商推荐,探讨哪家性价比更高 - 工业品牌热点
  • 一个营销系准大一新生的 AI 猜想:我们把大脑和身体装反了
  • 汽车供应链客户定位方法拆解:复杂B2B能力如何被客户看懂
  • 为什么你的Perplexity返回过时新闻?环境时区、缓存策略与源权重配置三重校准指南
  • 从零开始,通过curl命令测试taotoken api连通性
  • STM32CubeMX配置FreeRTOS消息队列的隐藏细节:为什么队列项大小要选uint32_t?
  • 流量见顶与合规压力之下,海外云服务器能帮团队跨过哪些隐性门槛
  • 用Verilog手把手教你设计一个5分频电路(附RTL代码与仿真波形)
  • 别再只会用贴图了!手把手教你用Shader Graph实现UI流光效果(含纯代码对比)
  • Python报错Resource averaged_perceptron_tagger_eng not found
  • 3分钟搞定Windows右键菜单:ContextMenuManager终极优化指南
  • AzurLaneAutoScript技术架构重构:深度解析碧蓝航线自动化脚本的创新实现
  • 跨境业务频繁卡顿遇瓶颈?谷歌云AI算力补齐链路短板破局增收
  • 数字体育可视化 | 智慧赛事与场馆全域协同管控
  • 告别海外账号!Claude Code Windows完整安装+API对接指南,小白也能照着做
  • CW32开发者的第一块调试器:CW-DAPLINK开箱实测与IAR/Keil快速上手
  • AMD Ryzen处理器调校实战:3个步骤解锁隐藏性能,告别BIOS限制
  • 企业推广引流达不到预期?2026五大营销课程理清运营提升思路
  • 基于BL606P RISC-V开发板构建智能音箱:从Docker环境到语音唤醒全流程实践
  • 别再乱接电阻了!从I2C总线到按键消抖,手把手教你玩转STM32的上下拉电阻配置
  • 智慧树自动刷课插件终极指南:5分钟快速上手,告别手动刷课烦恼
  • 腾讯与百度2026年Q1财报对比:AI浪潮下,富贵病与绝境战的不同命运
  • iOS 18.2备忘录AI功能解析:智能格式化、要点总结与写作建议如何重塑生产力
  • 论文精读|《基于Python的驻波仿真模拟》——王新光、张晨斌、庹忠曜等:用代码让抽象驻波“动”起来
  • 紧急预警!Perplexity体育搜索2024.06版本API变更将导致37%旧策略失效——立即执行这6项兼容性修复