Documente Academic
Documente Profesional
Documente Cultură
Generalități
Limbajul C, comparativ cu alte limbaje de nivel înalt, posedă o
nomenclatură de operații cu date mai dezvoltată.
O expresie în limbajul C este formată dintr-un operand sau
operanzi legați între ei prin operatori.
Compilatorul C realizează regruparea expresiilor, încercând
să creeze expresii efective pentru compilare. Însă, expresiile
cu plus unar nu se regrupează.
O expresie are o valoare şi un tip care se determină aplicând
operatorii conform priorităților şi asociativității acestora.
În limbajul C operatorii se asociază de la stânga la dreapta,
exceptând operatorii unari şi de atribuire, care se asociază de
la dreapta la stânga.
Totodată pot fi folosite parantezele rotunde pentru a impune o
anumită ordine în executarea operațiilor.
Operanzi
Un operand în limbajul C poate fi:
o constantă;
o constantă simbolică;
numele unei variabile simple;
numele unei funcții;
apelul unei funcții;
numele unui tablou;
referirea la elementul unui tablou (variabilă cu indici);
numele unei structuri;
referirea la elementul unei structuri;
o expresie inclusă în paranteze rotunde.
Operatori
Operatorii limbajului C se împart în clase de prioritate, fiecare clasă având
o regulă de asociativitate, care indică ordinea aplicării operatorilor
consecutivi de aceeași prioritate.
Principalele tipuri de operatori sunt:
aritmetici
relaționali
logici
de atribuire
de atribuire augmentată (compusă)
de incrementare/ decrementare
de evaluare condițională
logici pe biți (nu se vor studia)
Etc.
Remarcă:
• la împărțirea unui număr întreg la alt număr întreg partea fracționară se anulează.
De exemplu: expresia 5/2 are valoarea 2, şi nu 2.5!
Pentru a obține o valoare exactă de la împărțirea lui 5 la 2, trebuie să scriem expresia
aceasta astfel, încît măcar unul din operanzii ei să nu fie de tip întreg, de exemplu, 5/2.0 sau
5.0/2, sau 5.0/2.0
• În limbajul C lipsește operația de ridicare la putere. Ea se realizează printr-o funcție
matematică încorporată în fișierul math.h
Operatori relaționali
Operatorii relaționali sunt:
== (egal)
!= (diferit)
< (mai mic)
<= (mai mic sau egal)
> (mai mare)
>= (mai mare sau egal)
! În limbajul C nu există valori logice speciale. Valoarea fals se reprezintă prin zero.
Orice valoare diferită de zero reprezintă valoarea adevărat.
Ex. Expresia de relație a>b==2 întotdeauna va avea valoarea 0 (fals), căci, independent de
valoarea variabilelor, subexpresia a>b va avea valoarea 0 sau 1 şi compararea oricărei
din aceste valori cu 2 ne dă 0.
Operatorul de atribuire
Operatorul de atribuire se notează cu “=” şi se utilizează în expresia de atribuire:
v=expresie;
unde v este o variabilă simplă, fie variabilă cu indici sau un element de structură.
Exemple:
j=i++; este echivalent cu secvența de executat: j=i și apoi i=i+1;
y=--x; este echivalent cu secvența de executat: x=x-1 și apoi y=x;
! Acest operator are prioritatea cea mai mică, iar asociativitatea este de la dreapta spre stânga.
Operatori – prioritatea lor:
I ( ) [ ] var++ var-- . ->
II- (unar) +(unar) *(unar) &(unar) ++var --var ! ~ (tip) sizeof
III* / %
IV + -
V << >>
VI < <= >= >
VII == !=
VIII&
IX ^
X |
XI &&
XII ||
XIII? : (ternar)
XIV = op= (op poate fi: *(binar) / % +(binar) –(binar) << >> & ^ | )
XV ,