跳到主要内容

C++ 运算符

提示
  1. 运算符类型:C++中运算符分为六类:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。
  2. 算术运算符:用于执行基本的算术操作,例如+(加法)、-(减法)、*(乘法)、/(除法)和%(取模)。
  3. 赋值和逻辑运算符:赋值运算符用于将值赋给变量,如=+=-=;逻辑运算符用于测试表达式的真值,如&&(逻辑与)、||(逻辑或)和!(逻辑非)。

运算符是执行对变量和值的操作的符号。例如,+ 是用于加法的运算符,而 - 是用于减法的运算符。

C++中的运算符可以分为6种类型:

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

1. C++ 算术运算符

算术运算符用于对变量和数据执行算术运算。例如,

a + b;

这里,+ 运算符用于加法运算两个变量 a 和 b。同样地,C++中还有其他各种算术运算符。

运算符操作
+加法
-减法
*乘法
/除法
%取模运算(除法后的余数)

示例 1:算术运算符

#include <iostream>
using namespace std;

int main() {
int a, b;
a = 7;
b = 2;

// 输出 a 和 b 的和
cout << "a + b = " << (a + b) << endl;

// 输出 a 和 b 的差
cout << "a - b = " << (a - b) << endl;

// 输出 a 和 b 的积
cout << "a * b = " << (a * b) << endl;

// 输出 a 除以 b 的结果
cout << "a / b = " << (a / b) << endl;

// 输出 a 对 b 取模的结果
cout << "a % b = " << (a % b) << endl;

return 0;
}

输出

a + b = 9
a - b = 5
a * b = 14
a / b = 3
a % b = 1

在这里,运算符 +-* 分别计算加法、减法和乘法,就像我们预期的那样。

/ 除法运算符

注意我们程序中的 (a / b) 操作。/ 运算符是除法运算符。

从上面的例子中我们可以看到,如果一个整数除以另一个整数,我们将得到商。然而,如果除数或被除数是一个浮点数,我们将得到小数结果。


7/2 是 3
7.0 / 2 是 3.5
7 / 2.0 是 3.5
7.0 / 2.0 是 3.5

% 取模运算符

取模运算符 % 计算余数。当 a = 9 除以 b = 4 时,余数是 1

注意: % 运算符只能用于整数。

自增和自减运算符

C++ 还提供了自增和自减运算符:++--

  • ++ 将操作数的值增加 1
  • -- 将它减少 1

例如,

int num = 5;

// 自增运算符
++num; // 6

这里,代码 ++num; 将 num 的值增加 1

示例 2:自增和自减运算符

// 自增和自减运算符的工作原理

#include <iostream>
using namespace std;

int main() {
int a = 10, b = 100, result_a, result_b;

// 将 a 增加 1 并将结果存储在 result_a 中
result_a = ++a;
cout << "result_a = " << result_a << endl;

// 将 b 减少 1 并将结果存储在 result_b 中
result_b = --b;
cout << "result_b = " << result_b << endl;

return 0;
}

输出

result_a = 11
result_b = 99

在上述程序中,我们将 ++-- 运算符作为前缀 (++a 和 --b) 使用。然而,我们也可以将这些运算符作为后缀 (a++ 和 b--) 使用。

2. C++ 赋值运算符

在 C++ 中,赋值运算符用于将值赋给变量。例如,

// 将 5 赋给 a
a = 5;

这里,我们将值 5 赋给了变量 a。

运算符示例等价于
=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;

示例 3:赋值运算符

#include <iostream>
using namespace std;

int main() {
int a, b;

// 将 2 赋给 a
a = 2;

// 将 7 赋给 b
b = 7;

cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "\nAfter a += b;" << endl;

// 将 a 和 b 的和赋给 a
a += b; // a = a +b
cout << "a = " << a << endl;

return 0;
}

输出

a = 2
b = 7

After a += b;
a = 9

3. C++ 关系运算符

关系运算符用于检查两个操作数之间的关系。例如,

// 检查 a 是否大于 b
a > b;

这里,> 是一个关系运算符。它检查 a 是否大于 b。

如果关系是,它返回1;如果关系是,它返回0

运算符含义示例
==等于3 == 5 给出
!=不等于3 != 5 给出
>大于3 > 5 给出
<小于3 < 5 给出
>=大于等于3 >= 5 给出

示例 4:关系运算符

#include <iostream>
using namespace std;

int main() {
int a, b;
a = 3;
b = 5;
bool result;

result = (a == b); // 假
cout << "3 == 5 是 " << result << endl;

result = (a != b); // 真
cout << "3 != 5 是 " << result << endl;

result = a > b; // 假
cout << "3 > 5 是 " << result << endl;

result = a < b; // 真
cout << "3 < 5 是 " << result << endl;

result = a >= b; // 假
cout << "3 >= 5 是 " << result << endl;

result = a <= b; // 真
cout << "3 <= 5 是 " << result << endl;

return 0;
}

输出

3 == 50
3 != 51
3 > 50
3 < 51
3 >= 50
3 <= 51

注释:关系运算符用于决策制定和循环中。

4. C++ 逻辑运算符

逻辑运算符用于检查表达式是还是。如果表达式为,则返回1;如果表达式为,则返回0

运算符示例含义
&&expression1 && expression2逻辑与。仅当所有操作数都为真时为真。
||expression1 || expression2逻辑或。如果至少有一个操作数为真,则为真。
!! expression逻辑非。仅当操作数为假时为真。

在 C++ 中,逻辑运算符通常用于决策制定。为了更好地理解逻辑运算符,让我们看以下示例,

假设,
a = 5
b = 8

那么,

(a > 3) && (b > 5) 评估为真
(a > 3) && (b < 5) 评估为假

(a > 3) || (b > 5) 评估为真
(a > 3) || (b < 5) 评估为真
(a < 3) || (b < 5) 评估为假

!(a < 3) 评估为真
!(a > 3) 评估为假

示例 5:逻辑运算符

#include <iostream>
using namespace std;

int main() {
bool result;

result = (3 != 5) && (3 < 5); // 真
cout << "(3 != 5) && (3 < 5) 是 " << result << endl;

result = (3 == 5) && (3 < 5); // 假
cout << "(3 == 5) && (3 < 5) 是 " << result << endl;

result = (3 == 5) && (3 > 5); // 假
cout << "(3 == 5) && (3 > 5) 是 " << result << endl;

result = (3 != 5) || (3 < 5); // 真
cout << "(3 != 5) || (3 < 5) 是 " << result << endl;

result = (3 != 5) || (3 > 5); // 真
cout << "(3 != 5) || (3 > 5) 是 " << result << endl;

result = (3 == 5) || (3 > 5); // 假
cout << "(3 == 5) || (3 > 5) 是 " << result << endl;

result = !(5 == 2); // 真
cout << "!(5 == 2) 是 " << result << endl;

result = !(5 == 5); // 假
cout << "!(5 == 5) 是 " << result << endl;

return 0;
}

输出

(3 != 5) && (3 < 5)

1
(3 == 5) && (3 < 5)0
(3 == 5) && (3 > 5)0
(3 != 5) || (3 < 5)1
(3 != 5) || (3 > 5)1
(3 == 5) || (3 > 5)0
!(5 == 2)1
!(5 == 5)0

逻辑运算符程序解释

  • (3 != 5) && (3 < 5) 评估为 1 因为两个操作数 (3 != 5)(3 < 5) 都是 1(真)。
  • (3 == 5) && (3 < 5) 评估为 0 因为操作数 (3 == 5)0(假)。
  • (3 == 5) && (3 > 5) 评估为 0 因为两个操作数 (3 == 5)(3 > 5) 都是 0(假)。
  • (3 != 5) || (3 < 5) 评估为 1 因为两个操作数 (3 != 5)(3 < 5) 都是 1(真)。
  • (3 != 5) || (3 > 5) 评估为 1 因为操作数 (3 != 5)1(真)。
  • (3 == 5) || (3 > 5) 评估为 0 因为两个操作数 (3 == 5)(3 > 5) 都是 0(假)。
  • !(5 == 2) 评估为 1 因为操作数 (5 == 2)0(假)。
  • !(5 == 5) 评估为 0 因为操作数 (5 == 5)1(真)。

5. C++ 位运算符

在 C++ 中,位运算符用于对单个位进行操作。它们只能与 charint 数据类型一起使用。

运算符描述
&二进制与
|二进制或
^二进制异或
~二进制补码
<<二进制左移
>>二进制右移

要了解更多,请访问 C++ 位运算符

6. C++ 其他运算符

以下是 C++ 中一些其他常见运算符的列表。我们将在后续教程中学习它们。

运算符描述示例
sizeof返回数据类型的大小sizeof(int); // 4
?:根据条件返回值string result = (5 > 0) ? "even" : "odd"; // "even"
&表示操作数的内存地址&num; // num 的地址
.访问结构变量或类对象的成员s1.marks = 92;
->与指针一起使用,访问类或结构变量ptr->marks = 92;
<<打印输出值cout << 5;
>>获取输入值cin >> num;