Tässä opetusohjelmassa opit operaattoreiden etusijasta ja assosiatiivisuudesta esimerkkien avulla.
Operaattoreiden etusija
Operaattoreiden etusija määrittää, mikä operaattori suoritetaan ensin, jos lausekkeessa on enemmän kuin yksi operaattori.
Tarkastellaanpa esimerkkiä:
int x = 5 - 17* 6;
C: ssä etusija *
on suurempi kuin -
ja =
. Siksi 17 * 6
arvioidaan ensin. Sitten ilmaisu, johon osallistuminen -
arvioidaan, koska etusija -
on suurempi kuin =
.
Tässä on taulukko operaattoreiden etusijasta korkeammasta alempaan. Omaisuutta assosiatiivisuus keskustellaan lähiaikoina.
Operaattoreiden etusija- ja assosiaatiotaulukko
Operaattori | Operaattorin merkitys | Assosiatiivisuus |
---|---|---|
() () -> . | Toiminnallinen puhelu Taulukkoelementtiviite Epäsuora jäsenvalinta Suora jäsenvalinta | Vasemmalta oikealle |
! ~ + - ++ - & * sizeof (tyyppi) | Looginen negaatio bittikohtaisesti (1: t) täydentänyt Unary plus Unary miinus Increment Decrement Dereference (osoite) Osoittimen viite Palauttaa objektin koon Typecast (muunnos) | Oikealta vasemmalle |
* / % | Kerro Jaa loppu | Vasemmalta oikealle |
+ - | Binaarinen plus (lisäys) Binaarinen miinus (vähennyslasku) | Vasemmalta oikealle |
<< >> | Vasen vaihto Oikea vaihto | Vasemmalta oikealle |
< <= > > = | Vähemmän tai vähemmän Suurempi kuin Suurempi tai yhtä suuri | Vasemmalta oikealle |
== ! = | Yhtä kuin Ei yhtä | Vasemmalta oikealle |
& | Bittikohtaisesti JA | Vasemmalta oikealle |
^ | Bituaalisesti yksinoikeudella TAI | Vasemmalta oikealle |
| | Bittiä TAI | Vasemmalta oikealle |
&& | Looginen JA | Vasemmalta oikealle |
|| | Looginen TAI | Vasemmalta oikealle |
?: | Ehdollinen operaattori | Oikealta vasemmalle |
= * = / = % = + = - = & = = | = << = >> = | Yksinkertainen määritys Määritä tuote Määritä osamäärä Määritä loppu Määritä summa Määritä ero Määritä bittiä JA Määritä bittiä XOR Määritä bittiä TAI Määritä vasen siirto Määritä oikea siirto | Oikealta vasemmalle |
, | Lausekkeiden erotin | Vasemmalta oikealle |
Operaattoreiden assosiatiivisuus
Operaattorien assosiatiivisuus määrittää suunnan, johon lauseke arvioidaan. Esimerkiksi,
b = a;
Tässä a: n arvo osoitetaan b: lle, eikä päinvastoin. Se johtuu siitä, että =
operaattorin assosiatiivisuus on oikealta vasemmalle.
Lisäksi, jos läsnä on kaksi saman prioriteetin (prioriteetin) operaattoria, assosiatiivisuus määrittää suunnan, johon ne suoritetaan.
Tarkastellaanpa esimerkkiä:
1 == 2! = 3
Tässä operaattorit ==
ja !=
on sama etusija. Ja heidän assosiatiivisuutensa on vasemmalta oikealle. Siksi 1 == 2
suoritetaan ensin.
Yllä oleva ilmaus vastaa:
(1 == 2)! = 3
Huomaa: Jos lauseella on useita operaattoreita, voit ()
tehdä koodista luettavamman sulkeiden avulla.