當不同的運算符混合運算時,運算順序是根據運算符的優(yōu)先級而定的,優(yōu)先級高的運算符先運算,優(yōu)先級低的運算符后運算。在一個表達式中,如果各運算符有相同的優(yōu)先級,運算順序是從左向右,還是從右向左,是由運算符的結合性確定的。所謂結合性是指運算符可以和左邊的表達式結合,也可以與右邊的表達式結合。C++運算符的優(yōu)先級和結合性參見表3-14。
在表3-14中,"單"表示是單目運算符,"雙" 表示是雙目運算符,"三" 表示是三目運算符。表中有一些運算符,我們還沒有介紹,以后我們會在有關的內容中學習。
表3-14 C++運算符的優(yōu)先級和結合性
優(yōu)先級 運算符 種類 結合性
: :(全局)
單 從右到左
: :(類域)
雙 從左到右
. ( )(括號及函數(shù)調用) - > . .[ ]
雙 從左到右
. +
- ++
-- !
~ *
& new
delete sizeof
(類型)
單 從右到左
. - > * . *
雙 從左到右
. + / %
雙 從左到右
. + -
雙 從左到右
. << >>
雙 從左到右
. < < = > > =
雙 從左到右
. = = ! =
雙 從左到右
. &
雙 從左到右
. ^
雙 從左到右
. |
雙 從左到右
. & &
雙 從左到右
. | |
雙 從左到右
. ? :
三 從左到右
. =
雙 從右到左
最低 ,
雙 從左到右
每種運算符都有一個優(yōu)先級,優(yōu)先級是用來標志運算符在表達式中的運算順序的。優(yōu)先級高的先做運算,優(yōu)先級低的后做運算,優(yōu)先級相同的右結合性決定計算順序。
大多數(shù)運算符都是按從左到右計算,只有三類運算符的結合性是從右到左。他們是:單目、三目和賦值。這一點一定要記住。
在表3-14中,"單"表示是單目運算符,"雙" 表示是雙目運算符,"三" 表示是三目運算符。表中有一些運算符,我們還沒有介紹,以后我們會在有關的內容中學習。
表3-14 C++運算符的優(yōu)先級和結合性
優(yōu)先級 運算符 種類 結合性
: :(全局)
單 從右到左
: :(類域)
雙 從左到右
. ( )(括號及函數(shù)調用) - > . .[ ]
雙 從左到右
. +
- ++
-- !
~ *
& new
delete sizeof
(類型)
單 從右到左
. - > * . *
雙 從左到右
. + / %
雙 從左到右
. + -
雙 從左到右
. << >>
雙 從左到右
. < < = > > =
雙 從左到右
. = = ! =
雙 從左到右
. &
雙 從左到右
. ^
雙 從左到右
. |
雙 從左到右
. & &
雙 從左到右
. | |
雙 從左到右
. ? :
三 從左到右
. =
雙 從右到左
最低 ,
雙 從左到右
每種運算符都有一個優(yōu)先級,優(yōu)先級是用來標志運算符在表達式中的運算順序的。優(yōu)先級高的先做運算,優(yōu)先級低的后做運算,優(yōu)先級相同的右結合性決定計算順序。
大多數(shù)運算符都是按從左到右計算,只有三類運算符的結合性是從右到左。他們是:單目、三目和賦值。這一點一定要記住。