C语言运算符号详细说明 - 谙忆-人生之旅

谙忆-人生之旅

学不止步,梦不停歇-陈浩翔

C语言运算符号详细说明

 2015年08月27日

C语言中具有右结合性的运算符包括所有单目运算符以及赋值运算符(=)和条件运算符。其它都是左结合性。

判断表达式计算顺序时,先按优先级高的先计算,优先级低的后计算,当优先级相同时再按结合性,或从左至右顺序计算,或从右至左顺序计算。


C语言中的符号
运算符的种类
语言的运算符可分为以下几类:

1 算术运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(–)共七种。

2.关系运算符
用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=) 、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4.位操作运算符 参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5.赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

6.条件运算符
这是一个三目运算符,用于条件求值(?:)。

7.逗号运算符
用于把若干表达式组合成一个表达式(,)。

8.指针运算符
用于取内容(*)和取地址(&)二种运算。

9.求字节数运算符
用于计算数据类型所占的字节数(sizeof)。

10.特殊运算符
有括号(),下标[],成员(→,.)等几种。

优先级排序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
优先级1级 结合方向 左结合(自左至右)编辑
( ) 圆括号
[ ] [1]  下标运算符
-> 指向结构体成员运算符
. 结构体成员运算符[1]  (请注意它是一个实心圆点)

优先级2级 结合方向 右结合(自右至左)单目运算符编辑
! 逻辑非运算符
~ 按位取反运算符
++ 自增运算符
-- 自减运算符
- 负号运算符
(类型) 类型转换运算符
* 指针运算符
& 地址与运算符
sizeof 长度运算符

优先级3级 结合方向 左结合 双目运算符编辑
* 乘法运算符
/ 除法运算符
% 取余运算符

优先级4级 结合方向 左结合 双目运算符编辑
+ 加法运算符
- 减法运算符

优先级5级 结合方向 左结合 双目运算符编辑
<< 左移运算符
>> 右移运算符

优先级6级 结合方向 左结合 双目运算符编辑
<、<=、>、>= 关系运算符

优先级7级 结合方向 左结合 双目运算符编辑
== 等于运算符 (判断)
!= 不等于运算符(判断)

优先级8级 结合方向 左结合 双目运算符编辑
& 按位与运算符

优先级9级 结合方向 左结合 双目运算符编辑
^ 按位异或运算符

优先级10级 结合方向 左结合 双目运算符编辑
| 按位或运算符 举例:0xfe|0xef 即为1111 1110 与1110 1111按位或运算则答案为:1111 1111 即0xff。

优先级11级 结合方向 左结合 双目运算符编辑
&& 逻辑与运算符

优先级12级 结合方向 左结合 双目运算符编辑
|| 逻辑或运算符

优先级13级 结合方向 右结合 三目运算符编辑
? : 条件运算符

优先级14级 结合方向 右结合 双目运算符编辑
= 赋值运算符
+ = 加后赋值运算符 如s+=1表示s=s+1
- = 减后赋值运算符 如s-=1表示s=s-1
* = 乘后赋值运算符
/ = 除后赋值运算符
% = 取模后赋值运算符
< <= 左移后赋值运算符
>>=右移后赋值运算符
&= 按位与后赋值运算符
^=按位异或后赋值运算符
|= 按位或后赋值运算符

优先级15级 结合方向 左结合编辑
, 逗号运算符

说明:
同一优先级的运算符,运算次序由结合方向所决定。
简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

本文章由[谙忆]编写, 所有权利保留。 欢迎转载,分享是进步的源泉。

转载请注明出处:http://chenhaoxiang.cn

本文源自人生之旅_谙忆的博客