previous next Up Title Contents Index

Operaattoreiden presedenssit


Alla on lueteltu C:n operaattoreiden presedenssijärjestys, joka määrää, missä järjestyksessä lausekkeen operaatiot suoritetaan.

Ylinnä ovat vahvimmat ja alinna heikoimmat.

    1.     () [] -> .
    2.     ! ~ ++ -- + - * & (type) sizeof (unaarioperaattoreita)
    3.     * / %
    4.     + -
    5.     << >>
    6.     < > <= > >=
    7.     == !=
    8.     &
    9.     ^
    10.     |
    11.     &&
    12.     ||
    13.     ?:
    14.     = += -= *= /= %= &= ^= |= <<= >>=

Saman tason operaatiot suoritetaan lausekkeissa vasemmalta oikealle. Poikkeuksena ovat seuraavat operaatiot:

    - kaikki unaarioperaatiot (2. taso)
    - ?: (13. taso)
    - kaikki sijoitusoperaatiot (14. taso)

Yllä mainittujen operaatioiden kohdalla lausekkeet suoritetaan oikealta vasemmalle.

Inkrementointi- (++) ja dekrementointioperaatioista (--) on huomattava, että operaattori voi edeltää muuttujaa, ns. prefix-muoto, esim.

     y=++x;     /* järjestys: ++x; y=x; */

tai se voi seurata muuttujaa, ns. postfix-muoto, esim.

     y=x++;     /* järjestys: y=x; x++; */

Prefix-tapauksessa operaattori suoritetaan, ennen kuin muuttujan arvoa käytetään lausekkeessa. Postfix-tapauksessa operaattori suoritetaan muuttujan arvon käyttämisen jälkeen.

previous next Up Title Contents Index