C++冲刺(三)运算符优先级


      优先级最高的是数组下标、函数调用、操作符各结构成员操作符。(如 ()[] -> .)
      单目运算符的优先级仅次于前述运算符。类型转换也是单目运算(如!~ ++ -- - (type) *  & sizeof)。单目运算符是自右至左,如*p++解释为*(p++)
      双目运算符中算术运算符的优先级最高,移位运算符次之,关系运算符再次之,接着是逻辑运算符、条件运算符,赋值运算符,最后是逗号运算符。
     最重要的两点是:1 任何一个逻辑运算符的优先级低于任何一个关系运算符     2 移位运算符的优先级比算术运算符要低,但比关系运算符要高。
     同一优先级中:乘除求余法优先级相同,加法和减法相同,两个移动运算符相同。但是6个关系运算符不同,运算符==和!=要低于其他关系运算符。逻辑运算符有不同优先级:所有按位运算符要比顺序运算符的优先级高,每个“与”比“或”优先级高,而按位异或运算符介于按位与运算符和按位或运算符之间。
     赋值运算符的优先级要低于条件运算符。所有的赋值运算结合方式是从右到左的。
     在所有的运算符中,逗号运算符的优先级最低。因为逗号运算符常用于在需要一个表达式而不是一条语句的情形下替换作为语句结束标志的分号。逗号运算符在宏定义中特别有用。

更细微的区分可见下图:


猜你喜欢

转载自blog.csdn.net/u010991048/article/details/38580581