一、基础
表达式的基本组成部分包括变量、常量、运算符和括号。它们可以组合成更复杂的表达式,如a + b * c
。
二、算术运算符
算术运算符用于执行基本的数学运算,包括加、减、乘、除和取模:
+
加法-
减法*
乘法/
除法%
取模(仅对整数有效)
三、逻辑和关系运算符
这些运算符用于进行比较和逻辑判断:
==
等于!=
不等于<
小于>
大于<=
小于或等于>=
大于或等于&&
逻辑与||
逻辑或!
逻辑非
四、赋值运算符
赋值运算符用于给变量赋值,最常见的是=
。还有复合赋值运算符,如+=
, -=
, *=
, /=
, %=
, &=
, |=
, ^=
, <<=
, >>=
:
五、递增和递减运算符
++
和 --
分别用于递增和递减变量的值。它们可以作为前缀或后缀使用:
六、成员访问运算符
用于访问类或结构体的成员:
.
成员访问运算符
->
成员访问运算符(用于指针)
struct Point {
int x;
int y;
};
Point p = {1, 2};
p.x = 3; // 使用 . 运算符
七、条件运算符
int result = (condition) ? trueValue : falseValue;
八、位运算符
用于按位操作整数:
&
位与
|
位或
^
位异或
~
位非
<<
左移
>>
右移
九、sizeof运算符
int i;
std::cout << sizeof(i) << std::endl; // 输出4或8,取决于系统
十、逗号运算符
用于执行多个表达式,返回最后一个表达式的值:
int a, b, c;
c = (a = 3, b = a * 4, b + 3); // c将得到b的值,即15
十一、类型转换
可以显式地将一种数据类型转换为另一种类型:
int i = 10;
float f = static_cast<float>(i);
十二、运算符的优先级表
C++中有许多运算符,它们有不同的优先级。以下是一个简化的优先级列表(从高到低):
() (函数调用, 括号)
[] (下标)
->*, .* (成员指针)
->, . (成员访问)
++, -- (递增, 递减)
!, ~, +, -, (类型) (逻辑非, 位非, 正号, 负号, 类型转换)
*, /, % (乘法, 除法, 取模)
+, - (加法, 减法)
<<, >> (左移, 右移)
<, <=, >, >= (比较运算符)
==, != (相等性运算符)
& (位与)
^ (位异或)
| (位或)
&& (逻辑与)
|| (逻辑或)
? : (条件运算符)
= (赋值)
, (逗号)