精英盒子 -> 程序设计 -> 关于运算符优先级 [打印本页]

iol 2011-08-17 17:07

关于运算符优先级



绑定的最紧密的运算符并不是真正的运算符 , 下标 ,函数调用,和结构选择 .这些都与左边相关联.
接下来是一元运算符。它们具有真正的运算符中的最高优先级。由于函数调用比一元运算符绑定得更
紧密,你必须写(*p)()来调用 p指向的函数;*p()表示 p是一个返回一个指针的函数。转换是一元运算
符,并且和其他一元运算符具有相同的优先级。一元运算符是右结合的,因此*p++表示*(p++),而不是(*p)++。
    在接下来是真正的二元运算符。其中数学运算符具有最高的优先级,然后是移位运算符、关系运算符、
逻辑运算符、赋值运算符,最后是条件运算符。需要记住的两个重要的东西是:
1.  所有的逻辑运算符具有比所有关系运算符都低的优先级。  
2.  移位运算符比关系运算符绑定得更紧密,但又不如数学运算符。
    在这些运算符类别中,有一些奇怪的地方。乘法、除法和求余具有相同的优先级,加法和减法具有相同的优先级,以及移位运算符具有相同的优先级。

jybox 2011-08-17 18:11
我习惯给所有的东东都加括号.......

jybox 2011-08-17 18:12
偶尔还会被数学老师骂:“不要加那么多括号!第二个括号要用方括号,第三个用花括号!”

iol 2011-08-17 18:39
....无语




Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.039607 second(s),query:5 Gzip enabled