C语言运算符和结合性【转】
表1.C 语言运算符和结合性
|
优先级 |
运算符 |
含义 |
运算对象个数 |
结合方向 |
|
1 |
( ) |
圆括号 |
|
自左至右 |
|
[ ] |
下标运算符 |
|||
|
-> |
指向结构体成员运算符 |
|||
|
· |
结构体成员运算符 |
|||
|
2 |
! |
逻辑非运算符 |
1 (单目运算符) |
自右至左 |
|
~ |
按位取反运算符 |
|||
|
++ |
自增运算符 |
|||
|
-- |
自减运算符 |
|||
|
- |
负号运算符 |
|||
|
(类型) |
类型转换运算符 |
|||
|
* |
指针运算符 |
|||
|
& |
取地址运算符 |
|||
|
sizeof |
长度运算符 |
|||
|
3 |
* |
乘法运算符 |
2 (双目运算符) |
自左至右 |
|
/ |
除法运算符 |
|||
|
% |
求余运算符 |
|||
|
4 |
+ |
加法运算符 |
2 (双目运算符) |
自左至右 |
|
- |
减法运算符 |
|||
|
5 |
<< |
左移运算符 |
2 (双目运算符) |
自左至右 |
|
>> |
右移运算符 |
|||
|
6 |
< <= >= > |
关系运算符 |
2 (双目运算符) |
自左至右 |
|
7 |
== |
等于运算符 |
2 (双目运算符) |
自左至右 |
|
!= |
不等于运算符 |
|||
|
8 |
& |
按位与运算符 |
2 (双目运算符) |
自左至右 |
|
9 |
^ |
按位异或运算符 |
2 (双目运算符) |
自左至右 |
|
10 |
| |
按位或运算符 |
2 (双目运算符) |
自左至右 |
|
11 |
&& |
逻辑与运算符 |
2 (双目运算符) |
自左至右 |
|
12 |
|| |
逻辑或运算符 |
2 (双目运算符) |
自左至右 |
|
13 |
? : |
条件运算符 |
3 (三目运算符) |
自右至左 |
|
14 |
= += -= *= /= %= >>= <<= &= ^= |= |
赋值运算符 |
2 (双目运算符) |
自右至左 |
|
15 |
, |
逗号运算符 (顺序求值运算符) |
|
自左至右 |
附注:
1. 双目运算符可以与赋值运算符一起组成复合赋值运算符。C语言采用这种复合符,一是为了简化程序,使代码精练;二是为了提高编译效率,能产生质量较高的目标代码。

浙公网安备 33010602011771号