说明
根据运算符所带的操作数的数量进行划分,C语言的运算符有三种类别:
单目运算符:只带一个操作数的运算符。如:++运算符。
双目运算符:带两个操作数的运算符。如:+、-、*、/、%运算符。
三目运算符:带三个操作数的运算符。如:?:运算符。
一般是,单目运算符的优先级高于双目运算符,双目运算符的优先级高于三目运算符。
上表格
优先级 | 运算符 | 含义 | 运算类型 | 结合性 |
---|---|---|---|---|
1 | ( ) | 圆括号、函数参数表 | 单目运算符 | 自左向右 |
[ ] | 数组元素下标 | 双目运算符 | ||
-> | 指向结构体成员 | |||
. | 引用结构体成员 | |||
2 | ! | 逻辑非 | 单目运算符 | 自右向左 |
~ | 按位取反 | |||
++ - - | 自增 自减 | |||
- | 求负 | |||
* | 指针间接引用运算符 | |||
& | 取地址运算符 | |||
(类型表示符) | 强制类型转换运算符 | |||
sizeof | 取占内存大小运算符 | |||
3 | * / % | 乘、除、整数求余 | 双目算术运算符 | 自左向右 |
4 | + - | 加、减 | ||
5 | << >> | 左移、右移 | 双目位运算符 | |
6 | < <= | 小于、小于等于 | 双目关系运算符 | |
> >= | 大于、大于等于 | |||
7 | == != | 等于、不等于 | ||
8 | & | 按位与 | 双目位运算符 | |
9 | ^ | 按位异或 | ||
10 | | | 按位或 | ||
11 | && | 逻辑与 | 双目逻辑运算符 | |
12 | || | 逻辑或 | ||
13 | ?: | 条件运算符 | 三目运算符 | 自右向左 |
14 | = | 赋值运算符 | 双目运算符 | |
+= -= *= /= %= | 复合赋值运算符 | |||
&= ^= |= | ||||
<<= >>= | ||||
15 | , | 逗号运算符 | 顺序求值运算 | 自左向右 |