运算符结合性与优先级

来源:互联网 发布:网络统考信息管理 编辑:程序博客网 时间:2024/06/04 17:43

1.优先级比较容易理解,涉及到先算谁的问题,用的时候查表即可!

2.结合性是指在一个操作数的两侧如果存在优先级相同的运算符,比如a+b+c;(请记住:优先级相同的运算符一定具有相同的结合性,不信查表看看)。如果是右结合,那么就是a+(b+c);
如果是左结合,那么就是(a+b)+c;
所以结合性仅仅是先给谁加括号的问题,不涉及到先算谁的问题(切记)。

3计算顺序
在k&r第43页有这么一句话:
同大多数语言一样,C语言没有指定同一运算符中多个操作数的计算顺序(&&、||、?:和,运算符外)。
例如,在形如  x = f() + g();的这句语句中,f()可以在g()之前计算,也可以在g()之后计算。

?:的计算顺序是从左到右,而逗号运算符的计算顺序也是从左到右。
还有&&和||的计算顺序也是从左到右,而且它们两个还存在短路现象。


本文摘自http://blog.csdn.net/iceman19860106/archive/2008/10/17/3092634.aspx 原创
原创粉丝点击