目录
- 运算符概述
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 自增/自减运算符
- 条件运算符
- 类型转换运算符
- 逗号运算符
- 指针运算符
- 索引运算符
- 函数调用运算符
- 其他运算符
- 参考资料
1. 运算符概述
运算符是 C++ 中用于执行特定操作的符号。运算符可以作用于变量、常量、表达式等数据,以执行相应的操作。
C++ 中的运算符可以分为多种类型,包括:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 自增/自减运算符
- 条件运算符
- 类型转换运算符
- 逗号运算符
- 指针运算符
- 索引运算符
- 函数调用运算符
- 其他运算符
2. 算术运算符
算术运算符用于执行常见的数学操作。
运算符 | 作用 | 示例 |
---|---|---|
+ | 加法 | a + b |
- | 减法 | a - b |
* | 乘法 | a * b |
/ | 除法 | a / b |
% | 取余(模) | a % b |
示例:
int a = 10, b = 5;
int sum = a + b; // sum = 15
int remainder = a % b; // remainder = 0
3. 关系运算符
关系运算符用于比较两个值的大小,返回布尔值 true
或 false
。
运算符 | 作用 | 示例 |
---|---|---|
== | 等于 | a == b |
!= | 不等于 | a != b |
> | 大于 | a > b |
< | 小于 | a < b |
>= | 大于或等于 | a >= b |
<= | 小于或等于 | a <= b |
示例:
int a = 10, b = 5;
bool result = (a > b); // result = true
4. 逻辑运算符
逻辑运算符用于组合多个布尔表达式,返回一个布尔结果。
运算符 | 作用 | 示例 |
---|---|---|
&& | 逻辑与(AND) | a && b |
` | ` | |
! | 逻辑非(NOT) | !a |
示例:
bool a = true, b = false;
bool result = (a && b); // result = false
5. 位运算符
位运算符用于处理二进制位。
运算符 | 作用 | 示例 |
---|---|---|
& | 按位与 | a & b |
` | ` | 按位或 |
^ | 按位异或 | a ^ b |
~ | 按位取反 | ~a |
<< | 左移 | a << 2 |
>> | 右移 | a >> 2 |
示例:
int a = 5; // 二进制 0101
int b = 3; // 二进制 0011
int result = a & b; // result = 1 (二进制 0001)
6. 赋值运算符
赋值运算符用于将右侧的值赋给左侧的变量。
运算符 | 作用 | 示例 |
---|---|---|
= | 赋值 | a = b |
+= | 加法赋值 | a += b |
-= | 减法赋值 | a -= b |
*= | 乘法赋值 | a *= b |
/= | 除法赋值 | a /= b |
%= | 取余赋值 | a %= b |
示例:
int a = 10;
a += 5; // a = 15
7. 自增/自减运算符
自增运算符 ++
和自减运算符 --
用于将变量的值增加或减少 1。
运算符 | 作用 | 示例 |
---|---|---|
++ | 自增 | a++ 或 ++a |
-- | 自减 | a-- 或 --a |
示例:
int a = 5;
a++; // a = 6
++a; // a = 7
8. 条件运算符
条件运算符(也叫三元运算符)用于根据条件选择两个值中的一个。
运算符 | 作用 | 示例 |
---|---|---|
?: | 条件运算符 | a ? b : c |
示例:
int a = 5, b = 10, c = 20;
int result = (a < b) ? b : c; // result = 10
9. 类型转换运算符
类型转换运算符用于将一个数据类型转换为另一个数据类型。
运算符 | 作用 | 示例 |
---|---|---|
(type) | 强制类型转换 | (int) 3.14 |
static_cast<type>() | 静态类型转换 | static_cast<int>(3.14) |
dynamic_cast<type>() | 动态类型转换(用于继承关系) | dynamic_cast<Derived*>(basePtr) |
reinterpret_cast<type>() | 重新解释类型转换 | reinterpret_cast<char*>(ptr) |
const_cast<type>() | 去除常量限定符 | const_cast<int*>(ptr) |
示例:
float a = 3.14;
int b = (int) a; // 强制类型转换,b = 3
10. 逗号运算符
逗号运算符允许在一个表达式中执行多个操作,并返回最后一个操作的结果。
运算符 | 作用 | 示例 |
---|---|---|
, | 逗号运算符 | a = (b = 10, b + 5) |
示例:
int a, b;
a = (b = 10, b + 5); // b = 10, a = 15
11. 指针运算符
指针运算符用于操作指针类型的变量。
运算符 | 作用 | 示例 |
---|---|---|
& | 取地址运算符 | &a |
* | 解引用运算符 | *ptr |
示例:
int a = 5;
int* ptr = &a; // ptr 存储 a 的地址
int value = *ptr; // value = 5
12. 索引运算符
索引运算符用于访问数组或容器中的元素。
运算符 | 作用 | 示例 |
---|---|---|
[] | 数组索引 | arr[i] |
示例:
int arr[] = {1, 2, 3};
int x = arr[1]; // x = 2
13. 函数调用运算符
函数调用运算符用于调用函数。
运算符 | 作用 | 示例 |
---|---|---|
() | 函数调用 | func() |
示例:
void func() {
std::cout << "Hello, world!" << std::endl;
}
func(); // 调用函数
14. 其他运算符
- 成员访问运算符:
.
(点运算符)、->
(箭头运算符) - 条件运算符:
sizeof
(获取变量大小)
15. 参考资料
总结
C++ 中的运算符是执行各种操作的基本工具,涉及到数学、逻辑、位操作、赋值、类型转换等多个方面。合理使用这些运算符,可以让代码更加简洁和高效。通过掌握不同类型的运算符,可以提升编程技能,并使程序更具可读性和性能优化。
发表回复