由上至下,优先级依次递减
结合性: ---> 表示自左向右(反之亦然)
() [] -> . (--->)
! ~ ++ -- - (type) * & sizeof (<---)
* / % (--->)
+ - (--->)
<< >> (--->)
< <= > >= (--->)
== != (--->)
& (--->)
^ (--->)
| (--->)
&& (--->)
|| (--->)
?: (<---)
assignments (<---)
, (--->)
规律:
1、单目运算符优先于双目、三目
2、赋值符优先级特别低
3、位逻辑优先于代数逻辑 (正确说法是?)
4、比较运算的优先级高于逻辑运算
总结一下,按运算符优先级从高到低:单目运算符->双目运算符->三目运算符->赋值运算符->逗号运算符
Examples:
++p->len = ++(p->len)
*p->str++ = *(p->str)++ = *((p->str)++)
*p++->str = *(p++)->str = *((p++)->str)
msb<<4+lsb = msb<<(4+lsb)
*p.f = *(p.f)
val&mask!=0 = val&(mask!=0)