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.