二級(jí)C++精品課程3-2:優(yōu)先級(jí)和結(jié)合性

字號(hào):

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