C++ 运算符

2025 年 4 月 3 日 | 阅读 13 分钟

在 C++ 中,**运算符** 是用于对操作数中的 变量 和值执行操作的特殊符号。运算符是任何编程语言的基本概念。它可以执行多种操作,包括 算术、值赋值、位运算和逻辑计算。

基本示例

让我们看一个基本示例来演示 C++ 中的运算符。

示例

编译并运行

输出

c: 50

运算符类型

C++ 语言中有以下类型的运算符来执行不同类型的操作。

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 按位运算符
  • 赋值运算符
  • 三元运算符或条件运算符
  • 杂项运算符

在这里,我们将逐一讨论这些 C++ 运算符及其类型和示例。

1. 算术运算符

在 C++ 中,算术运算符主要用于对操作数执行数学运算(例如 (+) 加法、(-) 减法、(*) 乘法、(/) 除法)。我们可以将这些算术运算分为两类,包括二元运算符和一元运算符。下表有助于理解这些运算符在 C++ 中的工作方式。

运算符名称符号描述
二元加法+用于将两个值相加。
 减法-用于从另一个值中减去一个值。
 乘法*用于将两个值相乘。
 除法/用于将一个值除以另一个值。
 取模%用于在除法后查找余数值。
一元递增++用于将值加 1。
 递减--用于将值减 1。

示例

让我们看一个计算 **算术运算符** 的 C++ 程序。

示例

编译并运行

输出

Addition: 19
Subtraction: 11
Multiplication: 60
Division: 3
Modulus: 3
Increment: 16
Decrement: 15

2. 关系运算符

在 C++ 中,关系运算符主要用于比较两个操作数的值。它以 布尔 值(0 和 1)返回结果。如果比较为真,则返回 1。另一方面,如果比较为假,则返回 0。关系运算符有几种。下表有助于理解这些运算符在 C++ 中的工作方式。

运算符名称运算符符号描述
等于运算符==它检查两个操作数是否相等。如果条件匹配,则返回 true;否则返回 false。
Greater Than (大于号)此运算符用于检查第一个操作数的值是否大于第二个操作数的值。如果条件匹配,则返回 true;否则返回 false。
大于或等于>=此运算符用于检查第一个操作数的值是否大于或等于第二个操作数的值。如果条件匹配,则返回 true;否则返回 false。
Less Than (小于号)此运算符用于检查第一个操作数的值是否小于第二个操作数的值。如果条件匹配,则返回 true;否则返回 false。
小于或等于<=它检查第一个操作数的值是否小于或等于第二个操作数的值。如果条件匹配,则返回 true;否则返回 false。
不等于!=它检查两个操作数的值是否不相等。如果条件匹配,则返回 true;否则返回 false。

示例

让我们看一个计算关系运算符的 C++ 程序。

示例

编译并运行

输出

0
1
0
1
0
1

3. 逻辑运算符

在 C++ 中,逻辑运算符主要用于对 布尔 值执行逻辑运算。这些运算符还用于组合两个或多个条件。它以布尔值(0 和 1)返回结果。如果比较为真,则返回 1。如果比较为假,则返回 0。下表有助于理解这些运算符在 C++ 中的工作方式。

运算符名称运算符符号描述
逻辑与&&如果所有操作数的值都为真或非零,则只返回真值。
逻辑或||如果任何一个操作数的值为真或非零,则返回真值。
逻辑非!如果操作数的值为假或零,则返回真值。

示例

让我们看一个演示逻辑运算符的 C++ 程序。

示例

编译并运行

输出

The value of x && y is 1
The value of x || y is 1
The value of !y is 0

4. 位运算符

位运算符主要用于在位级别执行操作。它作用于单个位。操作数首先被转换为位级别,然后对其进行操作。它执行逐位操作。下表有助于理解这些运算符在 C++ 中的工作方式。

运算符名称运算符符号描述
按位与&如果此运算符存在于两个操作数中,则它会将一位复制到计算结果中。
按位或|如果此运算符存在于任何一个操作数中,则它会将一位复制到计算结果中。
按位异或^如果此运算符存在于任何一个操作数中,但不在两个操作数中,则它会将一位复制到计算结果中。
按位非~此运算符将二进制值 1 变为 0,将 0 变为 1。
右移>> 此运算符将值向右移动由右操作数指定的位数。
左移<< 此运算符将值向左移动由右操作数指定的位数。

示例

让我们看一个演示位运算符的 C++ 程序。

示例

编译并运行

输出

x & y is 8
x | y is 14
x ^ y is 6
~(x) is -15
x<<1 is 28
x>>1 is 7

5. 赋值运算符

这些赋值运算符主要用于为变量赋值。最常用的是赋值运算符 (=)。这些运算符使我们能够更改和更新存储在变量中的值。下表有助于理解这些运算符在 C++ 中的工作方式。

运算符名称运算符符号描述
赋值=它将右侧操作数的值赋给左侧操作数。
加法赋值+=此运算符首先将右操作数的值加到左操作数上,然后将结果赋值给左操作数。
减法赋值-=此运算符首先将右操作数的值从左操作数中减去,然后将结果赋值给左操作数。
乘法赋值*=此运算符首先将右操作数与左操作数相乘,然后将结果赋值给左操作数。
除法赋值/=此运算符将左操作数除以右操作数,然后将结果赋值给左操作数。
取模赋值%=它使用两个操作数取模,然后将结果赋值给左操作数。

示例

让我们看一个演示赋值运算符的 C++ 程序。

示例

编译并运行

输出

The value of x = 18
The value of x += y is 23
The value of x -= y is 18
The value of x *= y is 90
The value of x /= y is 18
The value of x %= y is 3

6. 三元或条件运算符

三元运算符或条件运算符对三个操作数执行操作。它是一种基于条件的运算符。它主要用于在测试表达式为真时运行一组语句,并在测试表达式评估为假时执行另一组语句。

语法

它具有以下语法:

这里出现了两个条件

  1. 如果条件 a 为真,则执行 Expression1 并给出适当的结果。
  2. 如果条件 a 为假,则执行 Expression2 并给出适当的结果。

示例

让我们看一个演示三元运算符和条件运算符的 C++ 程序。

示例

编译并运行

输出

Enter the Player Score: 80
Player Won the Game.

7. 杂项运算符

杂项运算符是 miscellaneous operators 的缩写。有许多杂项运算符不属于上述类别,如算术、逻辑、位运算以及许多其他运算符。C++ 中的一些杂项运算符如下。

  • sizeof() 运算符

Sizeof() 运算符用于以字节为单位返回操作数、变量和数据类型的大小。

语法

它具有以下语法:

示例

让我们举一个例子来说明 C++ 中的 sizeof() 运算符

示例

编译并运行

输出

4
1
  • 逗号运算符 (,)

逗号运算符主要用于分隔操作数、变量数据类型 等。它用于执行多个操作。它评估多个表达式并返回逗号分隔列表的最后一个表达式。

语法

它具有以下语法:

示例

让我们举一个例子来说明 C++ 中的逗号运算符。

示例

编译并运行

输出

34, 45
  • 箭头运算符和点运算符

点运算符主要用于访问对象的成员。另一方面,数组 运算符用于通过其指针访问类或结构的变量。

语法

它具有以下语法:

示例

让我们举一个例子来说明 C++ 中的箭头运算符和点运算符。

示例

编译并运行

输出

10
10
  • 类型转换运算符

使用类型转换运算符,我们可以将一种数据类型转换为另一种数据类型。

语法

示例

让我们举一个例子来说明 C++ 中的 **类型转换运算符**。

示例

编译并运行

输出

The Value of (int)b is:4578
The Value of (int)b is:19
  • 取地址运算符 (&) 和指针运算符 (*)

它主要用于返回变量的内存地址。另一方面,指针运算符用于定义指向变量的指针。

语法

示例

让我们举一个例子来说明 C++ 中的 **取地址 (&) 运算符** 和 **指针 (*)** 运算符。

示例

编译并运行

输出

The address of the variable num is: 0x7ffe95d31498
The address of the variable var is: 30841

运算符优先级和结合性

运算符优先级和结合性是 C++ 编程中的基本概念。它定义了表达式的计算顺序和部分。优先级表明表达式的哪个部分应首先计算。另一方面,结合性表明当表达式中存在具有相同优先级的运算符时,应向哪个方向计算。

C++ 运算符优先级

运算符优先级规定哪个运算符将首先被求值,哪个其次。结合性规定了运算符的求值方向,可以是左到右或右到左。

让我们通过下面的示例来理解优先级。

“data”变量将包含 148,因为 *(乘法运算符)的求值顺序在 +(加法运算符)之前。

运算符结合性

在运算符结合性中,如果表达式包含多个具有相似优先级的运算符,则从左到右或从右到左开始求值。

例如

C++ 运算符的优先级和结合性如下所示。

序号类别运算符结合性
1.作用域分辨符::从左到右
2.后缀() [] -> . ++ - -从左到右
3.一元+ - ! ~ ++ - - (类型)* & sizeof从右到左
4.乘法* / %从左到右
5.加法+ -从右到左
6.移位<< >>从左到右
7.关系< <= > >=从左到右
8.相等== !=/td>从右到左
9.按位与&从左到右
10.按位异或^从左到右
11.按位或|从右到左
12.逻辑与&&从左到右
13.逻辑或||从左到右
14.条件?:从右到左
15.赋值= += -= *= /= %=>>= <<= &= ^= |=从右到左
16.Comma (逗号),从左到右

C++ 运算符选择题

1. C++ 中赋值运算符 (=) 的主要作用是什么?

  1. 执行加法运算
  2. 比较两个值
  3. 为变量赋值
  4. 执行递减运算
 

答案:(c) 为变量赋值


2. C++ 中 7 << 4 表达式的输出是什么?

  1. 120
  2. 82
  3. 112
  4. 117
 

答案:112


3. 以下代码的输出是什么

  1. 31
  2. 11
  3. 30
  4. 21
 

答案:(a) 31


4. 下列代码的输出是什么?

  1. 15
  2. 25
  3. 20
  4. 18
 

答案:(d) 18


5. 逗号运算符 (,) 在 C++ 中的主要目的是什么?

  1. 用于比较两个值
  2. 用于按顺序运行两个或多个表达式
  3. 用于声明中分隔变量
  4. 用于分隔函数参数
 

答案:用于按顺序运行两个或多个表达式


下一主题C++ 标识符