1. 主页
  2. 文档
  3. C++教程
  4. C++基础教程
  5. C++ 中的运算符

C++ 中的运算符

运算符是任何编程语言的基础。我们可以将运算符定义为帮助我们对操作数执行特定数学和逻辑计算的符号。换句话说,我们可以说操作符对操作数进行操作。例如,’+’ 是用于加法的运算符,如下所示:  

c = a + b;

这里,“+”是称为加法运算符的运算符,“a”和“b”是操作数。加法运算符告诉编译器将两个操作数“a”和“b”相加。 

如果不使用运算符,C/C++ 编程语言的功能是不完整的。

C/C++ 有很多内置的操作符,可以分为 6 种类型:

  1. 算术运算符
  2. 关系运算符
  3. 逻辑运算符
  4. 位运算符
  5. 赋值运算符
  6. 其他运算符

上面的算子已经详细讨论过了: 

1.算术运算符:

这些运算符用于对操作数执行算术/数学运算。示例:(+、-、*、/、%、++、-)。算术运算符有两种类型: 

a) 一元运算符:操作或使用单个操作数的运算符是一元运算符。例如:递增 (++) 和递减 (–) 运算符

int val = 5;
++val;  // 6

b) 二元运算符:操作或使用两个操作数的运算符是二元运算符。例如:加法(+)、减法(-)、乘法(*)、除法(/)运算符

int a = 7;
int b = 2;
cout<<a+b; // 9

2.关系运算符:

这些用于比较两个操作数的值。例如,检查一个操作数是否等于另一个操作数,一个操作数是否大于另一个操作数等。一些关系运算符是(==,>=,<=)(请参阅这篇文章更多参考)。

int a = 3;
int b = 5;
a < b;
// operator to check if a is smaller than b

3. 逻辑运算符:

逻辑运算符用于组合两个或多个条件/约束或补充考虑的原始条件的评估。逻辑运算符的运算结果是布尔值truefalse。 

例如,当两个条件都满足时,在 C 或 C++ 中表示为“&&”运算符的逻辑与返回 true。否则,它返回 false。因此,当 a 和 b 都为真(即非零)时,a && b 返回真。

(4 != 5) && (4 < 5);     // true

4.位运算符:

位运算符用于对操作数执行位级操作。运算符首先转换为位级,然后对操作数执行计算。诸如加法、减法、乘法等数学运算可以在位级别执行,以加快处理速度。例如,在 C 或 C++ 中表示为& 运算符的按位 AND将两个数字作为操作数,并对两个数字的每一位进行 AND。仅当两个位都为 1 时,AND 的结果才为 1。

int a = 5, b = 9;   // a = 5(00000101), b = 9(00001001)
cout << (a ^ b);   //  00001100
cout <<(~a);       // 11111010

5.赋值运算符:

赋值运算符用于为变量赋值。赋值运算符的左侧操作数是一个变量,而赋值运算符的右侧操作数是一个值。右侧的值必须与左侧的变量具有相同的数据类型,否则编译器将引发错误。 

不同类型的赋值运算符如下所示 
a.:“=”:这是最简单的赋值运算符。该运算符用于将右侧的值赋给左侧的变量。 
例如: 

a = 10;
b = 20;
ch = 'y';

b.“+=”:该运算符是 ‘+’ 和 ‘=’ 运算符的组合。该运算符首先将左侧变量的当前值与右侧的值相加,然后将结果赋给左侧的变量。 
例如:

(a += b) can be written as (a = a + b)
如果最初存储在 a 中的值为 5。那么 (a += 6) = 11。

C.“-=”:此运算符是 ‘-‘ 和 ‘=’ 运算符的组合。该运算符首先从左侧变量的当前值中减去右侧的值,然后将结果分配给左侧的变量。 
例如: 

(a -= b) 可以写成 (a = a - b)
如果最初存储在 a 中的值为 8。那么 (a -= 6) = 2。

d.“*=”:此运算符是 ‘*’ 和 ‘=’ 运算符的组合。该运算符首先将左侧变量的当前值乘以右侧的值,然后将结果分配给左侧的变量。 
例如: 

(a *= b) 可以写成 (a = a * b)
如果最初,存储在 a 中的值为 5。那么 (a *= 6) = 30。

e. “/=”:此运算符是 ‘/’ 和 ‘=’ 运算符的组合。该运算符首先将左侧变量的当前值除以右侧的值,然后将结果分配给左侧的变量。 
例如:

(a /= b) 可以写成 (a = a / b)
如果最初,存储在 a 中的值为 6。那么 (a /= 2) = 3。

6. 其他运算符: 

除了上述运算符外,C 或 C++ 中还有一些其他运算符可用于执行某些特定任务。其中一些在这里讨论: 

a.sizeof 运算符: 

  • sizeof 在 C/C++ 编程语言中被广泛使用。
  • 它是一个编译时一元运算符,可用于计算其操作数的大小。
  • sizeof 的结果是无符号整数类型,通常用 size_t 表示。
  • 基本上,sizeof 运算符用于计算变量的大小。

b.逗号运算符: 

  • 逗号运算符(由标记表示)是一个二元运算符,它计算其第一个操作数并丢弃结果,然后计算第二个操作数并返回此值(和类型)。
  • 逗号运算符在所有 C 运算符中的优先级最低。
  • 逗号既充当运算符又充当分隔符。

C.条件运算符: 

  • 条件运算符的格式为Expression1? 表达式 2:表达式 3
  • 这里,Expression1 是要评估的条件。如果条件(Expression1)为,那么我们将执行并返回表达式2的结果,否则如果条件(表达式1)为,那么我们将执行并返回表达式3的结果。
  • 我们可以用条件运算符替换 if..else 语句的使用。

运算符优先级图

下表描述了 C / C++ 中运算符的优先顺序和关联性。运算符的优先级从上到下递减。 

优先级 运算符员 描述 关联性
1 () 括号(函数调用) 左到右
[] 括号(数组下标)
. 通过对象名称选择成员
-> 通过指针选择成员
++/– 后缀递增/递减
2 ++/– 前缀递增/递减 右到左
+/- 一元加/减
!~ 逻辑否定/按位补码
(类型) 强制转换(将值转换为类型的临时值)
* 取消引用
& 地址(操作数)
sizeof 确定此实现的字节大小
3 *,/,% 乘法/除法/模数 左到右
4 +/- 加法/减法 左到右
5 << , >> 按位左移,按位右移 左到右
6 < , <= 关系小于/小于或等于 左到右
> , >= 关系大于/大于或等于 左到右
7 == , != 关系等于/不等于 左到右
8 & 按位与 左到右
9 ^ 按位异或 左到右
10 | 按位包含 OR 左到右
11 && 逻辑与 左到右
12 || 逻辑或 左到右
13 ?: 三元条件 右到左
14 = 任务 右到左
+= , -= 加法/减法赋值
*= , /= 乘法/除法赋值
%= , &= 模数/按位与赋值
^= , |= 按位异/包含 OR 赋值
<>= 按位左移/右移分配
15 , 表达式分隔符 左到右
这篇文章对您有用吗?