C Precedența și asociativitatea operatorilor: definiție și exemple

În acest tutorial, veți afla despre prioritatea și asociativitatea operatorilor cu ajutorul exemplelor.

Precedența operatorilor

Prioritatea operatorilor determină care operator este executat mai întâi dacă există mai mult de un operator într-o expresie.

Să luăm în considerare un exemplu:

 int x = 5 - 17* 6;

În C, prioritatea lui *este mai mare decât -și =. Prin urmare, 17 * 6este evaluat mai întâi. Apoi, expresia care implică -este evaluată deoarece precedența lui -este mai mare decât cea a =.

Iată un tabel cu prioritatea operatorilor de la mai mare la mai mic. Proprietatea asociativității va fi discutată în scurt timp.

Tabel de precedență și asociativitate a operatorilor

Operator Înțeles operator Asociativitate
()
()
->
.
Apel funcțional
Referință element matrice
Selecție indirectă de membri Selecție
directă de membri
De la stânga la dreapta
!
~
+
-
++
-
&
*
sizeof
(tip)
Negare logică Complet
bitwise (1 's)
Unar plus
Unar minus
Increment
Decrement
Dereferență (Adresă)
Referința indicatorului
Returnează dimensiunea unui obiect
Tipărit (conversie)
De la dreapta la stanga
*
/
%
Înmulțiți
împărțiți
restul
De la stânga la dreapta
+
-
Binar plus (Adunare)
Binar minus (scădere)
De la stânga la dreapta
<<
>>
Shift stânga Shift
dreapta
De la stânga la dreapta
<
<=
>
> =
Mai puțin decât
Mai puțin sau egal
Mai mare decât
Mai mare decât sau egal
De la stânga la dreapta
==
! =
Egal cu
Nu egal cu
De la stânga la dreapta
& Bitwise ȘI De la stânga la dreapta
^ SAU exclusiv bit De la stânga la dreapta
| OR bit De la stânga la dreapta
&& Logic ȘI De la stânga la dreapta
|| OR logic De la stânga la dreapta
?: Operator condiționat De la dreapta la stanga
=
* =
/ =
% =
+ =
- =
& =
=
| =
<< =
>> =
Atribuire simplă
Atribuie produs
Atribuie coeficient
Atribuie restul
Atribuie sumă
Atribuie diferență
Atribuie pe biți ȘI
Atribuiți pe biți XOR
Atribuiți pe biți SAU
Atribuiți schimbarea la stânga
Atribuiți schimbarea la dreapta
De la dreapta la stanga
, Separator de expresii De la stânga la dreapta

Asociativitatea operatorilor

Asociativitatea operatorilor determină direcția în care este evaluată o expresie. De exemplu,

 b = a;

Aici, valoarea lui a este atribuită lui b, și nu invers. Acest lucru se datorează faptului că asociativitatea =operatorului este de la dreapta la stânga.

De asemenea, dacă sunt prezenți doi operatori cu aceeași prioritate (prioritate), asociativitatea determină direcția în care execută.

Să luăm în considerare un exemplu:

 1 == 2! = 3

Aici, operatorii ==și !=au aceeași prioritate. Și, asociativitatea lor este de la stânga la dreapta. Prin urmare, 1 == 2este executat mai întâi.

Expresia de mai sus este echivalentă cu:

 (1 == 2)! = 3

Notă: Dacă o instrucțiune are mai mulți operatori, puteți utiliza paranteze ()pentru a face codul mai lizibil.

Articole interesante...