运算符优先级

1 .优先级高于*,可以用->替代消除这个问题 *p.v可以替代为p->v

2 []高于*

3 函数()高于*    int *fp()

4 ==和!= 高于位操作符    val&mask!=0

5 ==和!= 高于赋值符

6 算术运算高于移位运算

7 逗号运算在所有运算符中优先级最低 i=1,2 会被解释为(i=1),2

,运算符的结果是最右边的值,上面的结果为常数2,最终被丢弃。

 a=b=c

所有的赋值操作符都具有右结合性,该表达式会先执行b=c,再执行a=b.

 大部分的表达式中里各个操作数的计算顺序是不定的,如a()+g()这两个是先执行a()还是g()是没有定义的,有利于编译器根据平台进行编译。但&&和||的操作数计算顺序是有定义的,采用从左向右的顺序计算

posted @ 2013-01-06 15:31  周尚武  阅读(250)  评论(0编辑  收藏  举报