Selles õpetuses saate näidete abil teada operaatorite ülimuslikkusest ja assotsiatiivsusest.
Operaatorite ülimuslikkus
Operaatorite ülimuslikkus määrab, milline operaator täidetakse esimesena, kui avaldises on rohkem kui üks operaator.
Vaatleme näiteks:
int x = 5 - 17* 6;
C-s *
on paremusjärjestus kui -
ja =
. Seega 17 * 6
hinnatakse kõigepealt. Siis -
hinnatakse kaasavat väljendit kui ülimuslikkust -
suurem kui =
.
Siin on tabel operaatorite paremusjärjestusest madalamale. Assotsiatiivsuse omadust arutatakse peagi.
Operaatorite tähtsuse ja assotsiatiivsuse tabel
Operaator | Operaatori tähendus | Assotsiatiivsus |
---|---|---|
() () -> . | Funktsionaalse kõne massiivi elemendi kaudne liikme valik Liikme otsene valik | Vasakult paremale |
! ~ + - ++ - & * Sizeof (liik) | Loogiline eitus Bitikaupa (1 's) täiendada Unaarsed pluss Unaarsed miinus Juurdekasv Kahanemine dereference (Aadress) Pointer viide Tagastab Objekti suuruse jklle harjunud roll (konversioon) | Paremalt vasakule |
* / % | Korruta jagamine ülejäänud | Vasakult paremale |
+ - | Binaarne pluss (liitmine) Binaarne miinus (lahutamine) | Vasakult paremale |
<< >> | Vasak nihe Parem nihe | Vasakult paremale |
< <= > > = | Vähem kui väiksem või võrdne Suurem kui suurem või võrdne | Vasakult paremale |
== ! = | Võrdne väärtusega Pole võrdne | Vasakult paremale |
& | Pikkade kaupa JA | Vasakult paremale |
^ | Bitipõhine eksklusiivne OR | Vasakult paremale |
| | Piki VÕI | Vasakult paremale |
&& | Loogiline JA | Vasakult paremale |
|| | Loogiline VÕI | Vasakult paremale |
?: | Tingimuslik operaator | Paremalt vasakule |
= * = / = % = + = - = & = = | = << = >> = | Lihtne omistamine Toote määramine Määrake jagatis Määrake jääk Määrake summa Määrake erinevus Määrake bitipidi JA määrake bitipidi XOR Määrake bitipidi VÕI Vasak nihe Määrake parem nihe | Paremalt vasakule |
, | Avaldiste eraldaja | Vasakult paremale |
Operaatorite assotsiatiivsus
Operaatorite assotsiatiivsus määrab avaldise hindamise suuna. Näiteks,
b = a;
Siin omistatakse väärtus b väärtusele a, mitte vastupidi. Sellepärast, et =
operaatori assotsiatiivsus on paremalt vasakule.
Samuti, kui esineb kaks sama prioriteediga (prioriteediga) operaatorit, määrab assotsiatiivsus suuna, milles nad täidavad.
Vaatleme näiteks:
1 == 2! = 3
Siin on operaatorid ==
ja !=
neil on sama ülimuslikkus. Ja nende assotsiatiivsus on vasakult paremale. Seega 1 == 2
hukatakse kõigepealt.
Ülaltoodud väljend on samaväärne järgmisega:
(1 == 2)! = 3
Märkus. Kui avaldusel on mitu operaatorit, saate ()
koodi loetavamaks muutmiseks sulgudes kasutada .