C语言中关于运算符优先级别
在一一个表达式中可能有多个不同的运算符结合起来,由于运算符的优先级别不一样,可能会形成得到的结果不同。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
对于相同的优先级,按着结合顺序计算。大多数计算是从左往右计算,但是有三个例外,是从右往左计算,分别是单目运算符,条件运算符,赋值运算符
基本的优先级别:
指针最先,单目运算符优于双目运算符
先乘除,后加减
先算术运算,再移位运算,最后进行位运算
逻辑运算最后计算。
单目算术运算符:
逻辑非(!),按位取反(-)++,和–,间接寻址(*)和取地址符(&)等
双目运算符:
乘除、整数取余和加减
关系运算:
等于,不等于,大于等于,小于等于
位运算:
按位与(&)
按位异或(~)
按位或(|)
逻辑运算:
逻辑与(&&)
逻辑或(||)
三目运算符(?:)
双目运算
=、+=,-=,*=赋值运算符
顺序求值运算符:
逗号运算符
总结:单目>双目算术运算符>移位运算符>关系运算符>位运算符>逻辑运算符>三目运算符>双目赋值运算>逗号运算符