Šioje pamokoje sužinosite apie operatorių pirmenybę ir asociatyvumą naudodamiesi pavyzdžiais.
Operatorių pirmenybė
Operatorių pirmenybė nustato, kuris operatorius vykdomas pirmiausia, jei išraiškoje yra daugiau nei vienas operatorius.
Panagrinėkime pavyzdį:
int x = 5 - 17* 6;
C atveju pirmenybė *yra didesnė už -ir =. Taigi, 17 * 6pirmiausia įvertinamas. Tada išraiška, susijusi su -vertinama kaip pirmenybė -yra didesnė nei =.
Čia pateikiama operatorių pirmenybės lentelė nuo aukštesnės iki žemesnės. Netrukus bus aptarta asociatyvumo savybė .
Operatorių pirmenybės ir asociacijos lentelė
| operatorius | Operatoriaus reikšmė | Asociatyvumas |
|---|---|---|
| () () -> . | Funkcinio skambučio masyvo elemento nuoroda Netiesioginis nario pasirinkimas Tiesioginis nario pasirinkimas | Iš kairės į dešinę |
| ! ~ + - ++ - & * sizeof (tipas) | Loginiai paneigimas Bitinis (1 '-os) papildyti Vienetinis plius unarinį atėmus Taškinis Silpimas Dereference (adresas) Pointer pagalbos grąžina objekto dydis Spausdinti medžiaga (perskaičiavimo) | Iš dešinės į kairę |
| * / % | Padauginti padalinti likutį | Iš kairės į dešinę |
| + - | Dvejetainis pliusas (pridėjimas) Dvejetainis minusas (atimtis) | Iš kairės į dešinę |
| << >> | Kairysis poslinkis Dešinysis poslinkis | Iš kairės į dešinę |
| < <= > > = | Mažesnis nei mažesnis arba lygus didesnis nei didesnis arba lygus | Iš kairės į dešinę |
| == ! = | Lygu su Nelygu | Iš kairės į dešinę |
| & | Bitais IR | Iš kairės į dešinę |
| ^ | Išskirtinis ARBA | Iš kairės į dešinę |
| | | ARBA bitais | Iš kairės į dešinę |
| && | Loginis IR | Iš kairės į dešinę |
| || | Logiška ARBA | Iš kairės į dešinę |
| ?: | Sąlyginis operatorius | Iš dešinės į kairę |
| = * = / = % = + = - = & = = | = << = >> = | Paprastas priskyrimas Priskirti produktą Priskirti koeficientą Priskirti likutį Priskirti sumą Priskirti skirtumą Priskirti po truputį IR Paskirti po truputį XOR Paskirti po truputį ARBA Paskirti kairįjį poslinkį Priskirti dešinįjį poslinkį | Iš dešinės į kairę |
| , | Išraiškų skyrėjas | Iš kairės į dešinę |
Operatorių asociatyvumas
Operatorių asociatyvumas lemia išraiškos vertinimo kryptį. Pavyzdžiui,
b = a;
Čia a reikšmė priskiriama b, o ne atvirkščiai. Taip yra todėl, kad =operatoriaus asociatyvumas yra iš dešinės į kairę.
Be to, jei yra du tos pačios pirmumo (prioriteto) operatoriai, asociatyvumas nustato jų vykdymo kryptį.
Panagrinėkime pavyzdį:
1 == 2! = 3
Čia operatoriai ==ir !=turi tą patį prioritetą. Jų asociatyvumas yra iš kairės į dešinę. Vadinasi, 1 == 2vykdoma pirmiausia.
Aukščiau pateiktas posakis atitinka:
(1 == 2)! = 3
Pastaba: jei sakinyje yra keli operatoriai, galite naudoti skliaustus (), kad kodas būtų lengviau įskaitomas.








