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