C Az operátorok elsőbbsége és asszociativitása: meghatározás és példák

Ebben az oktatóanyagban példák segítségével megismerheti az operátorok elsőbbségét és asszociativitását.

Az üzemeltetők elsőbbsége

Az operátorok elsőbbsége meghatározza, hogy melyik operátort hajtják végre először, ha egy kifejezésben egynél több operátor van.

Vegyünk egy példát:

 int x = 5 - 17* 6;

C-ben a fontossági sorrend *magasabb, mint a -és =. Ezért 17 * 6először értékelik. Ezután az érintett kifejezést -úgy értékelik, hogy a fontossági sorrendje -magasabb, mint a =.

Itt van egy táblázat az operátorok elsőbbségéről a magasabb és az alacsonyabb között. Az asszociativitás tulajdonsága hamarosan megvitatásra kerül.

Operátorok elsőbbségi és asszociativitási táblázata

Operátor Az operátor jelentése Asszociativitás
()
()
->
.
Funkcionális hívás
Tömb elem hivatkozás
Közvetett tag kiválasztás
Közvetlen tag kiválasztás
Balról jobbra
!
~
+
-
++
-
&
*
méret
(típus)
Logikai tagadás
Bitorientált (1 „s) kiegészítik
Egyoperandusú plusz
Egyoperandusú mínusz
Increment
Decrement
dereference (Cím)
Pointer hivatkozási
méretével tér vissza egy tárgy
typecast (konverzió)
Jobbról balra
*
/
%
Többszörös
osztás
maradék
Balról jobbra
+
-
Bináris plusz (összeadás)
Bináris mínusz (kivonás)
Balról jobbra
<<
>>
Bal váltás
Jobb váltás
Balról jobbra
<
<=
>
> =
Kevesebb, mint
Kevesebb vagy egyenlő
Nagyobb, mint
Nagyobb vagy egyenlő
Balról jobbra
==
! =
Egyenlő:
Nem egyenlő
Balról jobbra
& Bitenkénti ÉS Balról jobbra
^ Bitenként exkluzív VAGY Balról jobbra
| Bitenként VAGY Balról jobbra
&& Logikai ÉS Balról jobbra
|| Logikai VAGY Balról jobbra
?: Feltételes üzemeltető Jobbról balra
=
* =
/ =
% =
+ =
- =
& =
=
| =
<< =
>> =
Egyszerű
hozzárendelés Termék
hozzárendelése hányados
hozzárendelése maradék
hozzárendelése Összeg
hozzárendelése Hozzárendelés különbség
hozzárendelése bitenként ÉS
hozzárendelése bitenként XOR
hozzárendelése bitenként VAGY
bal oldali eltolása
hozzárendelése jobb oldali eltolása hozzárendelése
Jobbról balra
, A kifejezések elválasztója Balról jobbra

Az üzemeltetők asszociativitása

Az operátorok asszociativitása határozza meg a kifejezés kiértékelésének irányát. Például,

 b = a;

Itt az a értéke b-hez van rendelve, és nem fordítva. Ez azért van, mert az =operátor asszociativitása jobbról balra történik.

Továbbá, ha két azonos prioritású (prioritású) operátor van jelen, az asszociativitás határozza meg az irányt, amelyben végrehajtják.

Vegyünk egy példát:

 1 == 2! = 3

Itt operátorok ==és !=ugyanolyan elsőbbséggel rendelkeznek. És asszociativitásuk balról jobbra halad. Ezért 1 == 2először végrehajtják.

A fenti kifejezés ekvivalens:

 (1 == 2)! = 3

Megjegyzés: Ha egy utasításnak több operátora van, zárójelek ()segítségével könnyebben olvashatóbbá teheti a kódot.

érdekes cikkek...