C++ 运算符(Operators in C++)
C++ 提供了丰富的运算符,用于进行各种运算和操作。运算符是执行操作的符号,用来处理数据并生成结果。运算符的种类繁多,C++ 支持算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。
1. 算术运算符(Arithmetic Operators)
算术运算符用于基本的数学运算,如加法、减法、乘法、除法等。
| 运算符 | 描述 | 示例 |
|---|---|---|
+ | 加法 | a + b |
- | 减法 | a - b |
* | 乘法 | a * b |
/ | 除法 | a / b |
% | 取余 | a % b |
++ | 自增 | a++ 或 ++a |
-- | 自减 | a-- 或 --a |
示例:使用算术运算符
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 5;
cout << "a + b = " << a + b << endl; // 15
cout << "a - b = " << a - b << endl; // 5
cout << "a * b = " << a * b << endl; // 50
cout << "a / b = " << a / b << endl; // 2
cout << "a % b = " << a % b << endl; // 0
return 0;
}
2. 关系运算符(Relational Operators)
关系运算符用于比较两个值的关系,返回布尔值 true 或 false。
| 运算符 | 描述 | 示例 |
|---|---|---|
== | 等于 | a == b |
!= | 不等于 | a != b |
> | 大于 | a > b |
< | 小于 | a < b |
>= | 大于或等于 | a >= b |
<= | 小于或等于 | a <= b |
示例:使用关系运算符
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 5;
cout << "a == b: " << (a == b) << endl; // 0 (false)
cout << "a != b: " << (a != b) << endl; // 1 (true)
cout << "a > b: " << (a > b) << endl; // 1 (true)
cout << "a < b: " << (a < b) << endl; // 0 (false)
return 0;
}
3. 逻辑运算符(Logical Operators)
逻辑运算符用于在条件语句中进行布尔运算,通常与 if 或 while 等条件语句结合使用。
| 运算符 | 描述 | 示例 |
|---|---|---|
&& | 逻辑与 | a && b |
|| | 逻辑或 | a || b |
! | 逻辑非 | !a |
示例:使用逻辑运算符
#include <iostream>
using namespace std;
int main() {
bool a = true, b = false;
cout << "(a && b): " << (a && b) << endl; // 0 (false)
cout << "(a || b): " << (a || b) << endl; // 1 (true)
cout << "(!a): " << (!a) << endl; // 0 (false)
return 0;
}
4. 位运算符(Bitwise Operators)
位运算符用于操作整数类型的二进制位。
| 运算符 | 描述 | 示例 |
|---|---|---|
& | 按位与 | a & b |
| | 按位或 | a | b |
^ | 按位异或 | a ^ b |
~ | 按位取反 | ~a |
<< | 左移 | a << b |
>> | 右移 | a >> b |
示例:使用位运算符
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 3;
cout << "(a & b): " << (a & b) << endl; // 1
cout << "(a | b): " << (a | b) << endl; // 7
cout << "(a ^ b): " << (a ^ b) << endl; // 6
cout << "(~a): " << (~a) << endl; // -6
cout << "(a << 1): " << (a << 1) << endl; // 10
cout << "(a >> 1): " << (a >> 1) << endl; // 2
return 0;
}
5. 赋值运算符(Assignment Operators)
赋值运算符用于将一个值赋给一个变量。
| 运算符 | 描述 | 示例 |
|---|---|---|
= | 赋值 | a = b |
+= | 加法赋值 | a += b |
-= | 减法赋值 | a -= b |
*= | 乘法赋值 | a *= b |
/= | 除法赋值 | a /= b |
%= | 取余赋值 | a %= b |
示例:使用赋值运算符
#include <iostream>
using namespace std;
int main() {
int a = 10;
a += 5; // a = a + 5
cout << "a += 5: " << a << endl; // 15
a -= 3; // a = a - 3
cout << "a -= 3: " << a << endl; // 12
return 0;
}
6. 自增与自减运算符(Increment and Decrement Operators)
自增(++)和自减(--)运算符用于增加或减少一个变量的值。
| 运算符 | 描述 | 示例 |
|---|---|---|
++ | 自增 | a++ 或 ++a |
-- | 自减 | a-- 或 --a |
示例:使用自增与自减运算符
#include <iostream>
using namespace std;
int main() {
int a = 5;
cout << "a++: " << a++ << endl; // 输出 5,a 增加为 6
cout << "++a: " << ++a << endl; // 输出 7
cout << "a--: " << a-- << endl; // 输出 7,a 减少为 6
cout << "--a: " << --a << endl; // 输出 5
return 0;
}
7. 条件运算符(三元运算符)
条件运算符是一个三目运算符,根据条件判断返回不同的值。
| 运算符 | 描述 | 示例 |
|---|---|---|
? : | 条件运算符 | condition ? a : b |
示例:使用条件运算符
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 5;
int result = (a > b) ? a : b; // 如果 a > b,则返回 a,否则返回 b
cout << "result: " << result << endl; // 10
return 0;
}
8. 类型转换运算符(Type-Casting Operators)
类型转换运算符用于将一种数据类型的值转换为另一种数据类型。
| 运算符 | 描述 | 示例 |
|---|---|---|
static_cast | 静态类型转换 | static_cast<int>(a) |
dynamic_cast | 动态类型转换 | dynamic_cast<type>(object) |
const_cast | 常量转换 | const_cast<const type>(a) |
reinterpret_cast | 重解释类型转换 | reinterpret_cast<type>(a) |
示例:使用 static_cast
#include <iostream>
using namespace std;
int main() {
double a = 5.7;
int b = static_cast<int>(a); // 将 double 转换为 int
cout << "b: " << b << endl; // 输出 5
return 0;
}
总结
C++ 运算符种类繁多,各种运算符能够帮助开发者在程序中实现各种不同的操作。掌握这些运算符并理解它们的使用场景,是高效编写 C++ 程序的基础。
| 运算符类型 | 示例 |
|---|---|
| 算术运算符 | +, -, *, / |
| 关系运算符 | ==, !=, >, < |
| 逻辑运算符 | &&, ||, ! |
| 位运算符 | &, |, ^, << |
| 赋值运算符 | =, +=, -= |
| 自增/自减运算符 | ++, -- |
| 条件运算符 | ? : |
| 类型转换运算符 | static_cast |