精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品开源心得,转载请注明出处:锐英源,www.wisestudy.cn,孙老师作品,联系电话13803810136。
C操作符的优先级
序号 |
表达式 |
优先级 |
1 |
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员) |
↑最高 |
2 |
!(逻辑非) ~(位取反) -(负号) ++(加1) --(减1) &(变量地址) |
?│ |
3 |
*(指针所指内容) type(函数说明) sizeof(长度计算) |
│ |
4 |
*(乘) /(除) %(取模) |
│ |
5 |
+(加) -(减) |
│ |
6 |
<<(位左移) >>(位右移) |
│ |
7 |
<(小于) <=(小于等于) >(大于) >=(大于等于) |
│ |
8 |
==(等于) !=(不等于) |
│ |
9 |
&(位与) |
│ |
10 |
^(位异或) |
│ |
11 |
|(位或) |
│ |
12 |
&&(逻辑与) |
│ |
13 |
||(逻辑或) |
│ |
14 |
?:(?表达式) |
│ |
15 |
= += -=(联合操作) |
│ |
16 |
,(逗号运算符) |
│最低 |
最高和最低的肯定要先记下,在最高一类里:“()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)”, 逗号是最低的。最高最低一共5个。最高的后面3个都是关于子部分关联的,都是同一性质的。[]是找数组里一部分,.和->是访问结构体(或类对象)成员的。
然后就是把属于共同范畴的相邻行组织到一个自己理解的分类下,4和5行属于数值运算;7和8属于比较操作符;9、10和11是属于按位操作符;12和13是逻辑操作符;15是属于赋值操作符。
下面就是各个分类内部的前后关系了,比如数值运算里的乘比加减高。
再就是记特殊的了,比如type、sizeof和?:等等。
( )是切开疑虑表达式的好方法,对于认定要优先组合的部分,先圈起来。
操作符的左右结合也是要关注的。
把复杂的混淆的表达式,自己尝试把()放在不同位置,看看结果,对比结果,对于理解掌握有好处。