I denne opplæringen lærer du om forrang og tilknytning til operatører ved hjelp av eksempler.
Forrang for operatører
Prioriteten til operatører bestemmer hvilken operatør som utføres først hvis det er mer enn en operatør i et uttrykk.
La oss se på et eksempel:
int x = 5 - 17* 6;
I C er forrang av *
høyere enn -
og =
. Derfor 17 * 6
blir behandlet først. Deretter blir uttrykket involverende -
evaluert som forrang for -
er høyere enn for =
.
Her er en tabell over operatørens forrang fra høyere til lavere. Eiendommen til assosiativitet vil bli diskutert om kort tid.
Operatørens prioritet og tilknytningstabell
Operatør | Betydningen av operatøren | Assosiativitet |
---|---|---|
() () -> . | Funksjonell samtale Arrayelementreferanse Indirekte medlemsvalg Direkte medlemsvalg | Venstre til høyre |
! ~ + - ++ - & * sizeof (type) | Logisk negasjon Bitvis (1 s) utfyller enhetlige pluss enhetlige minus sporstepp Decrement deferanseoperasjon (adresse) Pointer referanse Returnerer størrelsen på et objekt typecast (konvertering) | Høyre til venstre |
* / % | Multipliser Divide Rest | Venstre til høyre |
+ - | Binært pluss (tillegg) Binært minus (subtraksjon) | Venstre til høyre |
<< >> | Venstre skift Høyre skift | Venstre til høyre |
< <= > > = | Mindre enn mindre enn eller lik større enn større enn eller lik | Venstre til høyre |
== ! = | Like til Ikke lik | Venstre til høyre |
& | Bitvis OG | Venstre til høyre |
^ | Bitvis eksklusiv ELLER | Venstre til høyre |
| | Bitvis ELLER | Venstre til høyre |
&& | Logisk OG | Venstre til høyre |
|| | Logisk ELLER | Venstre til høyre |
?: | Betinget operatør | Høyre til venstre |
= * = / = % = + = - = & = = | = << = >> = | Enkel tildeling Tildel produkt Tildel kvotient Tildel rest Tildel sum Tildel forskjell Tildel bitvis OG Tildel bitvis XOR Tildel bitvis ELLER Tildel venstre skift Tildel høyre skift | Høyre til venstre |
, | Separator av uttrykk | Venstre til høyre |
Assosiativitet av operatører
Assosiativiteten til operatører bestemmer retningen et uttrykk vurderes i. For eksempel,
b = a;
Her tildeles verdien av a til b, og ikke omvendt. Det er fordi =
operatørens assosiativitet er fra høyre til venstre.
Også, hvis to operatører med samme prioritet (prioritet) er til stede, bestemmer assosiativitet retningen de utfører i.
La oss se på et eksempel:
1 == 2! = 3
Her har operatører ==
og !=
samme forrang. Og deres assosiativitet er fra venstre til høyre. Derfor 1 == 2
blir den utført først.
Uttrykket ovenfor tilsvarer:
(1 == 2)! = 3
Merk: Hvis en uttalelse har flere operatorer, kan du bruke parenteser for ()
å gjøre koden mer lesbar.