C++ 运算符

预计时间: 10分钟

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

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

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

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

1. C++算术运算符

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

a + b;

这里,+运算符用于添加两个变量一种和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)操作。/运算符是除法运算符。

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

在 C++ 中,

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;

// increment operator
++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;


    // 将a加1并将结果存储在result_a中   
    result_b = --b;
    cout << "result_b = " << result_b << endl;

    return 0;
}

输出

结果_a = 11
结果_b = 99

在上面的程序中,我们使用了++and--运算符作为前缀(++a 和 --b)。但是,我们也可以将这些运算符用作后缀(a++ 和 b--)

要了解更多信息,请访问递增和递减运算符。

2. C++ 赋值运算符

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

// 将5赋值给a
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;

示例 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 返回 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

运算符示例说明
&&表达式1 && 表达式2逻辑与。 仅当所有操作数都为真时才为真。
||表达式1 || 表达式2逻辑或。 如果至少有一个操作数为真,则为真。
!!表达式逻辑非。 仅当操作数为假时才为真。

在 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(真)。
  • (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; // address of num
.访问结构变量或类对象的成员s1.marks = 92;
->与指针一起使用以访问类或结构变量ptr->marks = 92;
<<打印输出值cout << 5;
>>获取输入值cin >> num;
更新于2021年05月04日