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