C语言中的运算符1
优先级 | 运算符符号及其含义 | 结合方向与操作数数目 |
---|---|---|
1 | () 圆括号;[] 下标运算符;-> 指向结构体成员运算符;. 结构体成员运算符 | 自左至右 |
2 | ! 逻辑非运算符;~ 按位取反运算符;++ 自增运算符;– 自减运算符;- 负号运算符;* 指针运算符(间接寻址运算符);& 取地址运算符;(type) 类型转换运算符;sizeof 长度运算符 | 自右至左,单目运算符 |
3 | * 乘法运算符;/ 除法运算符;% 取余运算符 | 自左至右,双目运算符 |
4 | + 加法运算符;- 减法运算符 | 自左至右,双目运算符 |
5 | << 左移运算符;>> 右移运算符 | 自左至右,双目运算符 |
6 | <、<=、>、>=关系运算符 | 自左至右,双目运算符 |
7 | == 等于运算符,!= 不等于运算符 | 自左至右,双目运算符 |
8 | & 按位与运算符 | 自左至右,双目运算符 |
9 | ^ 按位异或运算符 | 自左至右,双目运算符 |
10 | | 按位或运算符 | 自左至右,双目运算符 |
11 | && 逻辑与运算符 | 自左至右,双目运算符 |
12 | || 逻辑或运算符 | 自左至右,双目运算符 |
13 | ?: 条件运算符 | 自右至左,三目运算符 |
14 | = 赋值运算符;+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>= 结合特定操作的赋值运算符 | 自右至左,双目运算符 |
15 | , 逗号运算符 | 自左至右 |
- 《The C Programming Language》 ↩