Tutorial Study Image

C++ 中的运算符


2022年8月9日, Learn eTutorial
2346

运算符主要被认为是任何编程语言的基础。运算符是使我们能够对操作数执行特定逻辑和数学运算的符号。换句话说,运算符控制操作数。例如,运算符“+”用于加法,如下所示:

c = a + b;

这里,“a”和“b”是操作数,“+”是运算符,也称为加法运算符。加法运算符告诉编译器组合(即相加)操作数“a”和“b”。

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

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

Operands and Operators

C++ 操作数和运算符

C++ 运算符主要分为六种类型

Operands and Operators

C++ 中的算术运算符

为了对变量和数据执行算术运算,使用算术运算符。例如:


a + b
 

+ 运算符用于将两个变量 a 和 b 相加。在 C++ 中,还有许多其他算术运算符。

算术运算 运算符 用途 描述
加法 + (A+B) 将操作数 A 和 B 相加
减法 - (A-B) 从 A 中减去操作数 B
乘法 * (A*B) 将操作数 A 和 B 相乘
除法 / (A/B) 将操作数 A 和 B 相除
取模 % (A%B) 获取操作数 A 除以操作数 B 后的余数

C++ 中算术运算符的示例


#include <iostream>
using namespace std;

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

    // here  printing of the sum of a and b takes place
    cout << "a + b = " << (a + b) << endl;

    //  difference of a and b is printing
    cout << "a - b = " << (a - b) << endl;

    //  the product of a and b is printing
    cout << "a * b = " << (a * b) << endl;

    // the division of a by b is printing
    cout << "a / b = " << (a / b) << endl;

    // the modulo of a by b is printing
    cout << "a % b = " << (a % b) << endl;

    return 0;
}

输出


a + b = 7
a - b = 3
a * b = 10
a / b = 2
a % b = 1

正如预期的那样,运算符 +、- 和 * 分别计算加法、减法和乘法。

除法运算符 (/)

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

如前面的示例所示,通过一个整数除以另一个整数,我们将得到商。但是,如果除数或被除数是浮点数,则结果将是小数。

注意:在 C++ 中,输出可能会根据不同数据类型(int/double)中操作数的组合而变化。如果操作数更改如下,将打印以下示例:

5/2 是 2

5.0 / 2 是 2.5

5 / 2.0 是 2.5

5.0 / 2.0 是 2.5

模运算符 (%)

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

请记住,% 运算符只能与整数一起使用。

递增和递减运算符(一元运算符)

一元运算符是指对单个操作数进行操作的运算符。例如:递减 (--)递增 (++) 运算符

即 C++ 中的递增和递减运算符分别是 ++ 和 --。
 
++ 将操作数的值增加 1-- 将其减少 1

例如


int num = 6;

// increment operator
++num;  // 7
 

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

递增和递减运算符工作方式的示例


//An example of the working of increment and decrement operators

#include <iostream>
using namespace std;

int main() {
    int a = 20, b = 200, result_a, result_b;

    // here we are incrementing a by 1 and we will store the result in result_a
    result_a = ++a;
    cout << "result_a = " << result_a << endl;


    //here we are  decrementing b by 1 and we will store the result in result_b   
    result_b = --b;
    cout << "result_b = " << result_b << endl;

    return 0;
}

输出


result_a = 21
result_b = 199

在前面的程序中,++ 和 -- 运算符用作前缀(++a 和 --b)。但是,这些运算符也可以用作后缀(a++ 和 b--)。

C++ 中的赋值运算符

C++ 中使用赋值运算符为变量赋值。

例如,


// assign 10 to b
b = 10;
 

在上面的示例中,变量 b 已被赋值为 10。

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

赋值运算符的示例


//An example for the assignment operators

#include <iostream>
using namespace std;

int main() {
    int a, b;

    // here the 6 is assigned to a
    a = 6;

    // here the 12 is assigned to b
    b = 12;

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

    // here we are assigning the sum of a and b to a
    a += b;  // a = a +b
    cout << "a = " << a << endl;

    return 0;
}

输出


a = 6
b = 12

After a += b;
a = 18

C++ 中的关系运算符

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


// check whether a is greater than b
a > b;

 

在这种情况下,> 是关系运算符。它有助于检查 a 是否大于 b。

如果关系为真,它返回 1;如果为假,则返回 0。
 

运算符 含义 示例
== 等于 5 == 7 给出 false
!= 不等于 5 != 7 给出 true
> 大于 5 > 7 给出 false
< 小于 5 < 7 给出 true
>= 大于或等于 5 >= 7 给出 false
<= 小于或等于 5 <= 7 给出 true

关系运算符的示例


#include <iostream>
using namespace std;

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

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

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

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

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

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

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

    return 0;
}

输出


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

C++ 中的逻辑运算符

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

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

逻辑运算符通常用于 C++ 中的决策。让我们看一些例子来充分理解逻辑运算符。

Operands and Operators

逻辑运算符的示例


#include <iostream>
using namespace std;

int main()
{
    bool result;
    int a = 4, b = 6;

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

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

    result = (a == b) && (a > b);    // false
    cout << "(a == b) && (a > b) is " << result << endl;

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

    result = (a != b) || (a > b);    // true
    cout << "(a != b) || (a > b) is " << result << endl;

    result = (a == b) || (a > b);    // false
    cout << "(a == b) || (a > b) is " << result << endl;

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

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

    return 0;
}

输出

(a != b) && (a < b) is 1
(a == b) && (a < b) is 0
(a == b) && (a > b) is 0
(a != b) || (a < b) is 1
(a != b) || (a > b) is 1
(a == b) || (a > b) is 0
!(b == 3) is 1
!(b == b) is 0

逻辑运算符程序解释

  • (4 != 6) && (4 < 6) 为 1,因为这里两个操作数都为真。
  • (4 == 6) && (4 < 6) 为 0,因为操作数 4==6 为假 (0)。
  • (4 == 6) && (4 > 6) 为 0,因为这里两个操作数 (4==6 和 4>6) 都为假。
  • (4 != 6) || (4 < 6) 为 1,因为这里两个操作数都为真,因此 (4 != 6) || (4 < 6) 为真 (1)。
  • (4 != 6) || (4 > 6) 为 1,因为这里至少一个操作数 (4 != 6) 为真,因此 (4 != 6) || (4 > 6) 为真 (1)。
  • (4 == 6) || (4 > 6) 为 0,因为这里两个给定操作数都为假。
  • !(6 == 3) 为 1,因为操作数 (6==3) 为假 (0)。
  • !(6 == 6) 为 0,因为操作数 (6==6) 为真 (1)。

C++ 中的位运算符

C++ 中的位运算符对整数数据在单个位级别进行操作。这些操作包括位测试、位设置和位移位。C++ 中位运算符的详细解释在下一个教程中给出。

operator 它的描述
& 按位与
| 按位或
^ 按位异或
~ 位非
<<  位左移
>>  位右移

C++ 中的其他运算符

以下是一些其他常见的 C++ 运算符列表。后续教程将详细介绍它们。

运算符 描述 示例
sizeof 它将返回数据类型的大小。 sizeof(int); // 5
?: 根据条件返回一个值 string result = (7 > 0) ? "even" : "odd"; // "even"
& 表示操作数的内存地址。 # // num 的地址
. 访问结构变量或类对象的成员 s1.marks = 94;
-> 用于通过指针访问类或结构变量 ptr->marks = 94;
<<  打印结果值 cout << 6;
>>  获取输入值 cin >> num;