多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# C++ 运算符 > 原文: [https://www.programiz.com/cpp-programming/operators](https://www.programiz.com/cpp-programming/operators) #### 在本教程中,我们将借助示例学习 C++ 中不同类型的运算符。 在编程中,运算符是对值或变量进行运算的符号。 运算符是对变量和值执行运算的符号。 例如,`+`是用于加法的运算符,而`-`是用于减法的运算符。 C++ 中的运算符可分为 6 种类型: 1. 算术运算符 2. 赋值运算符 3. 关系运算符 4. 逻辑运算符 5. 按位运算符 6. 其他运算符 * * * ## 1\. C++ 算术运算符 算术运算符用于对变量和数据执行算术运算。 例如, ```cpp a + b; ``` 此处,`+`运算符用于相加两个变量`a`和`b`。 同样,C++ 中还有其他各种算术运算符。 | 运算符 | 工作方式 | | --- | --- | | `+` | 加法 | | `-` | 减法 | | `*` | 乘法 | | `/` | 除法 | | `%` | 模运算(除法后的余数) | ### 示例 1:算术运算符 ```cpp #include <iostream> using namespace std; int main() { int a, b; a = 7; b = 2; // printing the sum of a and b cout << "a + b = " << (a + b) << endl; // printing the difference of a and b cout << "a - b = " << (a - b) << endl; // printing the product of a and b cout << "a * b = " << (a * b) << endl; // printing the division of a by b cout << "a / b = " << (a / b) << endl; // printing the modulo of a by b cout << "a % b = " << (a % b) << endl; return 0; } ``` **输出** ```cpp a + b = 9 a - b = 5 a * b = 14 a / b = 3 a % b = 1 ``` 在这里,运算符`+`,`-`和`*`分别计算了我们可能期望的加,减和乘。 **除法运算符** 注意我们程序中的操作`(a / b)`。`/`运算符是除法运算符。 从上面的示例可以看出,如果一个整数除以另一个整数,我们将得到商。 但是,如果除数或被除数是浮点数,我们将以小数形式得到结果。 ```cpp In C++, 7/2 is 3 7.0 / 2 is 3.5 7 / 2.0 is 3.5 7.0 / 2.0 is 3.5 ``` **模运算符** 模运算符`%`计算余数。 当`a = 9`除以`b = 4`时,余数为 **1**。 **注意**:`%`运算符只能与整数一起使用。 * * * ### 增减运算符 C++ 还提供了递增和递减运算符:分别为`++`和`--`。`++`将操作数的值增加 **1**,而`--`将其减少值 **1**。 例如, ```cpp int num = 5; // increasing num by 1 ++num; ``` 在此,`num`的值从其初始值 **5** 增加到 **6**。 ### 示例 2:递增和递减运算符 ```cpp // Working of increment and decrement operators #include <iostream> using namespace std; int main() { int a = 10, b = 100, result_a, result_b; // incrementing a by 1 and storing the result in result_a result_a = ++a; cout << "result_a = " << result_a << endl; // decrementing b by 1 and storing the result in result_b result_b = --b; cout << "result_b = " << result_b << endl; return 0; } ``` **输出** ```cpp result_a = 11 result_b = 99 ``` 在上面的程序中,我们将`++`和`--`运算符用作**前缀**。 我们还可以将这些运算符用作**后缀**。 这些运算符用作前缀与用作后缀时略有不同。 要了解有关这些运算符的更多信息,请访问[递增和递减运算符](https://www.programiz.com/article/increment-decrement-operator-difference-prefix-postfix)。 * * * ## 2\. C++ 赋值运算符 在 C++ 中,赋值运算符用于将值赋给变量。 例如, ```cpp // assign 5 to 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;` | ### 示例 2:赋值运算符 ```cpp #include <iostream> using namespace std; int main() { int a, b, temp; // 2 is assigned to a a = 2; // 7 is assigned to b b = 7; // value of a is assigned to temp temp = a; // temp will be 2 cout << "temp = " << temp << endl; // assigning the sum of a and b to a a += b; // a = a +b cout << "a = " << a << endl; return 0; } ``` **输出** ```cpp temp = 2 a = 9 ``` * * * ## 3\. C++ 关系运算符 关系运算符用于检查两个操作数之间的关系。 例如, ```cpp // 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:关系运算符 ```cpp #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; } ``` **输出** ```cpp 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`。 | | <code>&#124;&#124;</code> | <code>expression1 &#124;&#124; expression2</code> | 逻辑或。如果至少一个操作数为`true`,则为`true`。 | | `!` | `!expr` | 逻辑非。仅当操作数为`false`时为`true`。 | 在 C++ 中,逻辑运算符通常用于决策制定。 为了进一步了解逻辑运算符,让我们来看以下示例, ```cpp 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:逻辑运算符 ```cpp #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; } ``` **输出** ```cpp (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`)。 * * * ## 5\. C++ 按位运算符 在 C++ 中,按位运算符用于对单个位执行操作。 它们只能与`char`和`int`数据类型一起使用。 | 运算符 | 描述 | | --- | --- | | `&` | 二进制与 | | `&#124;` | 二进制或 | | `^` | 二进制异或 | | `~` | 二进制补码 | | `<<` | 二进制左移 | | `>>` | 二进制右移 | 要了解更多信息,请访问 [C++ 按位运算符](https://www.programiz.com/cpp-programming/bitwise-operators)。 * * * 除了上面讨论的运算符外,还有一些其他运算符,例如`sizeof`,`?`,`.`,`&`等,不能整齐地分为一种或另一种类型。 我们将在后面的教程中了解有关这些运算符的更多信息。