什么是优先级
在我们很早接触到数学运算的时候,我们就知道要先算乘除,再算加减。也就是运算是有先后顺序的,这就是优先级,在程序中也是一样的,运算符是具有优先级的。
优先级的用途
如果,你能够熟练掌握优先级的话,那么可以写出非常漂亮的程序。
a == 1 and b == 2?
(a == 1) and (b == 2)
比如说,如果你对优先级有所了解,那么很容易写出第一行这样的程序。但是如果你对优先级一无所知的话,那么可能写的程序就像是第二行,自然是没那么美观的。
即使你记不住运算符的优先级,也不要紧,大多数情况下,只要多使用括号,就可以解决这一问题了。多使用括号并没什么坏处,因此,如果你记不住运算符的优先级,那么你没有必要非要记住。
事实上,在大多数情况下,你如果真的非常了解运算符的优先级,写出了非常漂亮的程序,这种程序反而可能会给人造成困扰。因为,如果你的程序有阅读者的话,阅读的人很可能没办法像你一样熟练的掌握运算符的优先级,可能会给读者阅读的时候造成困扰。
同类运算符的优先级
算数运算符:乘,除,求余的优先级相同,高于加,减
自增自减运算符:后自增/自减的优先级,高于前自增/自减
赋值运算符:所有赋值运算符的优先级相同
逻辑运算符:逻辑非的优先级最高,其次是逻辑与,最后是逻辑或
比较运算符:大于/大于等于,小于/小于等于的优先级高于,等于和不等于
位运算符:按位取反的优先级最高,其次是按位与,再其次是按位异或,最后是按位或
成员和成员指针运算符:成员运算符的优先级要高于成员指针运算符
不同类运算符的优先级
?1,自增自减运算符的优先级高于所有逻辑运算符和算数运算符。
2,除逻辑非和按位非运算符优先级相同以外,所有的位运算符的优先级高于逻辑运算符。
3,算数运算符的优先级要高于比较运算符和逻辑运算符。
4,比较运算符的优先级要高于逻辑运算符。
5,逻辑运算符的优先级要高于赋值运算符。
6,赋值运算符的优先级要高于逗号运算符
?因此,普遍规律为
自增自减运算符 > 逻辑非和按位非 > 算数运算符 > 比较运算符 > 位运算符?> 逻辑运算符 > 赋值运算符 > 逗号运算符
一般来说,只要记住了同级和不同级运算符优先级的普遍规律,就足以满足写程序需要了。一般不需要特意去查询或者记忆c++运算符优先级表???????。
?点击查看全部c++教程
|