原文: https://www.programiz.com/cpp-programming/operators

在本教程中,我们将借助示例学习 C++ 中不同类型的运算符。 在编程中,运算符是对值或变量进行运算的符号。

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

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

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

1. C++ 算术运算符

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

  1. a + b;

此处,+运算符用于相加两个变量ab。 同样,C++ 中还有其他各种算术运算符。

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

示例 1:算术运算符

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. int a, b;
  5. a = 7;
  6. b = 2;
  7. // printing the sum of a and b
  8. cout << "a + b = " << (a + b) << endl;
  9. // printing the difference of a and b
  10. cout << "a - b = " << (a - b) << endl;
  11. // printing the product of a and b
  12. cout << "a * b = " << (a * b) << endl;
  13. // printing the division of a by b
  14. cout << "a / b = " << (a / b) << endl;
  15. // printing the modulo of a by b
  16. cout << "a % b = " << (a % b) << endl;
  17. return 0;
  18. }

输出

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

在这里,运算符+-*分别计算了我们可能期望的加,减和乘。

除法运算符

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

从上面的示例可以看出,如果一个整数除以另一个整数,我们将得到商。 但是,如果除数或被除数是浮点数,我们将以小数形式得到结果。

  1. In C++,
  2. 7/2 is 3
  3. 7.0 / 2 is 3.5
  4. 7 / 2.0 is 3.5
  5. 7.0 / 2.0 is 3.5

模运算符

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

注意%运算符只能与整数一起使用。


增减运算符

C++ 还提供了递增和递减运算符:分别为++--++将操作数的值增加 1,而--将其减少值 1

例如,

  1. int num = 5;
  2. // increasing num by 1
  3. ++num;

在此,num的值从其初始值 5 增加到 6

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

  1. // Working of increment and decrement operators
  2. #include <iostream>
  3. using namespace std;
  4. int main() {
  5. int a = 10, b = 100, result_a, result_b;
  6. // incrementing a by 1 and storing the result in result_a
  7. result_a = ++a;
  8. cout << "result_a = " << result_a << endl;
  9. // decrementing b by 1 and storing the result in result_b
  10. result_b = --b;
  11. cout << "result_b = " << result_b << endl;
  12. return 0;
  13. }

输出

  1. result_a = 11
  2. result_b = 99

在上面的程序中,我们将++--运算符用作前缀。 我们还可以将这些运算符用作后缀

这些运算符用作前缀与用作后缀时略有不同。

要了解有关这些运算符的更多信息,请访问递增和递减运算符


2. C++ 赋值运算符

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

  1. // assign 5 to a
  2. a = 5;

在这里,我们为变量a分配了5的值。

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

示例 2:赋值运算符

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. int a, b, temp;
  5. // 2 is assigned to a
  6. a = 2;
  7. // 7 is assigned to b
  8. b = 7;
  9. // value of a is assigned to temp
  10. temp = a; // temp will be 2
  11. cout << "temp = " << temp << endl;
  12. // assigning the sum of a and b to a
  13. a += b; // a = a +b
  14. cout << "a = " << a << endl;
  15. return 0;
  16. }

输出

temp = 2
a = 9

3. C++ 关系运算符

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

// checks if a is greater than b
a > b;

在此,>是关系运算符。 它检查a是否大于b

如果关系为为真,则返回 1,而如果关系为为假,则返回 0

运算符 含义 示例
== 等于 3 == 5求值为false
!= 不等于 3 != 5求值为true
> 大于 3 > 5求值为false
< 小于 3 < 5求值为true
>= 大于或等于 3 >= 5求值为false
<= 小于或等于 3 <= 5求值为true

示例 4:关系运算符

#include <iostream>
using namespace std;

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

    result = (a == b);   // false
    cout << "3 == 5 is " << result << endl;

    result = (a != b);  // true
    cout << "3 != 5 is " << result << endl;

    result = a > b;   // false
    cout << "3 > 5 is " << result << endl;

    result = a < b;   // true
    cout << "3 < 5 is " << result << endl;

    result = a >= b;  // false
    cout << "3 >= 5 is " << result << endl;

    result = a <= b;  // true
    cout << "3 <= 5 is " << result << endl;

    return 0;
}

输出

3 == 5 is 0
3 != 5 is 1
3 > 5 is 0
3 < 5 is 1
3 >= 5 is 0
3 <= 5 is 1

注意:关系运算符用于决策和循环。


4. C++ 逻辑运算符

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

运算符 示例 含义
&& expression1 && expression2 逻辑与。仅当所有操作数均为true时为true
` ` `expression1 expression2` 逻辑或。如果至少一个操作数为true,则为true
! !expr 逻辑非。仅当操作数为false时为true

在 C++ 中,逻辑运算符通常用于决策制定。 为了进一步了解逻辑运算符,让我们来看以下示例,

Suppose,
a = 5
b = 8

Then,

(a > 3) && (b > 5) evaluates to true
(a > 3)  && (b < 5) evaluates to false

(a > 3) || (b > 5) evaluates to true
(a > 3) || (b < 5) evaluates to true
(a < 3) || (b < 5) evaluates to false

!(a == 3) evaluates to true
!(a > 3) evaluates to false

示例 5:逻辑运算符

#include <iostream>
using namespace std;

int main() {
    bool result;

    result = (3 != 5) && (3 < 5);     // true
    cout << "(3 != 5) && (3 < 5) is " << result << endl;

    result = (3 == 5) && (3 < 5);    // false
    cout << "(3 == 5) && (3 < 5) is " << result << endl;

    result = (3 == 5) && (3 > 5);    // false
    cout << "(3 == 5) && (3 > 5) is " << result << endl;

    result = (3 != 5) || (3 < 5);    // true
    cout << "(3 != 5) || (3 < 5) is " << result << endl;

    result = (3 != 5) || (3 > 5);    // true
    cout << "(3 != 5) || (3 > 5) is " << result << endl;

    result = (3 == 5) || (3 > 5);    // false
    cout << "(3 == 5) || (3 > 5) is " << result << endl;

    result = !(5 == 2);    // true
    cout << "!(5 == 2) is " << result << endl;

    result = !(5 == 5);    // false
    cout << "!(5 == 5) is " << result << endl;

    return 0;
}

输出

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

逻辑运算符的说明

  • (3 != 5) && (3 < 5)的值为 1,因为两个操作数(3 != 5)(3 < 5)均为 1true)。
  • (3 == 5) && (3 < 5)的值为 0,因为操作数(3 == 5)0false)。
  • (3 == 5) && (3 > 5)的值为 0,因为两个操作数(3 == 5)(3 > 5)均为 0false)。
  • (3 != 5) || (3 < 5)的值为 1,因为两个操作数(3 != 5)(3 < 5)均为 1true)。
  • (3 != 5) || (3 > 5)的值为 1,因为操作数(3 != 5)1true)。
  • (3 == 5) || (3 > 5)的值为 0,因为两个操作数(3 == 5)(3 > 5)均为 0false)。
  • !(5 == 2)的值为 1,因为操作数(5 == 2)0false)。
  • !(5 == 5)的值为 0,因为操作数(5 == 5)1true)。

5. C++ 按位运算符

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

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

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


除了上面讨论的运算符外,还有一些其他运算符,例如sizeof?.&等,不能整齐地分为一种或另一种类型。 我们将在后面的教程中了解有关这些运算符的更多信息。