C++ 运算符

本文通过示例介绍了 C++ 中不同类型的运算符,以及一些使用运算符中需要注意的问题。

在编程中,运算符是对值或变量进行操作的符号。例如, + 是用于加法 - 的运算符,而是用于减法的运算符。

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

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

C++ 算术运算符

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

a + b;

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

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

示例 1:算术运算符

#include <iostream>
using namespace std;

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

    cout << "a + b = " << (a + b) << endl;
    cout << "a - b = " << (a - b) << endl;
    cout << "a * b = " << (a * b) << endl;
    cout << "a / b = " << (a / b) << endl;
    cout << "a % b = " << (a % b) << endl;

    return 0;
}

输出

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

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

在 C++ 中:

7 / 2 = 3
7.0 / 2 = 3.5
7 / 2.0 = 3.5
7.0 / 2.0 = 3.5

自增和自减运算符

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

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

例如,

int num = 5;
++num;  // 6

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

#include <iostream>
using namespace std;

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

    result_a = ++a;
    cout << "result_a = " << result_a << endl;

    result_b = --b;
    cout << "result_b = " << result_b << endl;

    return 0;
}

输出

result_a = 11
result_b = 99

在上面的程序中,我们将 ++-- 运算符作为前缀使用,我们也可以将这些运算符用作后缀使用,比如: a++b--

C++ 赋值运算符

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

a = 5;

下表列出了 C++ 中的所有赋值运算符:

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

    a = 2;
    b = 7;

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

    a += b;  // a = a +b
    cout << "a = " << a << endl;

    return 0;
}

输出

a = 2
b = 7

After a += b;
a = 9

C++ 关系运算符

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

a > b;

这里, > 是一个关系运算符。它检查 a 是否大于 b。如果结果为,则返回 1,如果关系为,则返回 0

运算符 意义 例子
== 等于 3 == 5
!= 不等于 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);   // 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

C++ 逻辑运算符

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

运算符 说明 例子
&& 逻辑与。仅当所有操作数都为真时才为真。 a && b
|| 逻辑或。如果至少有一个操作数为真,则为真。 a | b
! 逻辑非。只有当操作数为假时才为真。 !a

在 C++ 中,逻辑运算符常用于决策。为了进一步理解逻辑运算符,让我们看下面的例子,

a = 5
b = 8

(a > 3) && (b > 5)  // true
(a > 3)  && (b < 5) // false

(a > 3) || (b > 5)  // true
(a > 3) || (b < 5)  // true
(a < 3) || (b < 5)  // false

!(a < 3)            // true
!(a > 3)            // 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) 都是 1 (true)。
  • (3 == 5) && (3 < 5) 计算结果为 0,因为 (3 == 5)0 (false)。
  • (3 == 5) && (3 > 5) 计算结果为 0,因为 (3 == 5)(3 > 5) 都是 0 (false)。
  • (3 != 5) || (3 < 5) 计算结果为 1,因为 (3 != 5)(3 < 5) 都是 1 (true)。
  • (3 != 5) || (3 > 5) 计算结果为 1,因为 (3 != 5)1 (true)。
  • (3 == 5) || (3 > 5) 计算结果为 0,因为 (3 == 5)(3 > 5) 都是 0 (false)。
  • !(5 == 2) 计算结果为 1,因为 (5 == 2)0 (false)。
  • !(5 == 5) 计算结果为 0,因为 (5 == 5)1 (true)。

C++ 按位运算符

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

运算符 描述
& 按位与
| 按位或
^ 按位异或
~ 按位补码
<< 按位左移
>> 按位右移

其他 C++ 运算符

这是 C++ 中可用的其他一些常见运算符的列表。我们将在后面的教程中了解它们。

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