Documente Academic
Documente Profesional
Documente Cultură
Operatori
PRIMELE PROGRAME ÎN LIMBAJUL C
Structura unui program
Orice program în limbajul C trebuie să fie compus din cel puțin o funcție, și anume funcția
main().
Structura unei funcții:
tip nume_functie(parametru1,parametru2…parametrun)
{
…
corp functie
…
}
….
tip nume_functie(par1…parn)
{
declaratii variabile/constante
…
apel functii corp functie
instructiuni
…
}
Funcții standard de introducere și afișare
Se cunosc urmatoarele funcții de intrare (introducere a datelor):
- getch() : citește un caracter din memorie
- getche() : citește un caracter din memorie cu ecou
- getchar() : citește un caracter de la tastatură
- gets() : citește un șir de caractere
- scanf() : introduce de la tastatură date formatate
Exercițiu: 1. Să se afișeze în consolă toate cifrele, într-un rând separate printr-un spațiu și separat
câte una pe un rând.
Exercițiu 2: Fiecare să-și afișeze numele și prenumele sau pe ecran (consolă)
scanf(“%d”, &x);
unde %d – specificatorul de format
iar & - semnifică adresa de memorie a variabilei x
Expresii și operatori
O expresie (operație) în limbajul C este compusă din unul sau mai mulți operanzi (care pot fi
variabile, constante, funcții ș.a.) legați prin operatori.
Operatorii la rândul lor pot fi:
1. Unari – aplicând doar un operand (ex: operator incrementare)
2. Binari – aplicând 2 operanzi (ex: operatori aritmetici)
3. Ternari – aplicând 3 operanzi (ex: operator condiționat)
Operatori
Operatorii au și clasificarea în dependență de funcția pe care o îndeplinesc, scopul pe care il
poartă. Astfel deosebim operatori: aritmetici, relaţionali şi logici, operatori pentru prelucrare
biţi, precum şi câţiva operatori speciali pentru sarcini particulare.
Operatori aritmetici
+ reprezintă operatorul plus unar sau binar, în funcţie de context
- reprezintă operatorul minus unar sau binar, în funcţie de context
* reprezintă operatorul de înmulţire (binar)
/ reprezintă operatorul de împărţire (binar)
% reprezintă operatorul modulo (binar) – restul împărțirii a 2 numere întregi
Dacă expresia de relaţie e adevărată atunci valoarea ei este unu, în alt caz – 0.
Operatori logici
Negare (!)
Conjuncţie (&&) - SI
Disjuncţie (||) – SAU
Exercițiu: să se calculeze:
1) s=y*x++
2) s=y*++x
3) s = m+++2, unde m=5
Operatorul de atribuire
“=“ – operatorul de atribuire
◦ suma = a + b + c;
◦ x = y = z = 0 este echivalentă cu (x=(y=(z=0)));
Se evaluează expresia Expr1. Dacă este adevărată, se evaluează Expr2, care devine valoarea întregii
expresii. Dacă Expr1 este falsă, se evaluează Expr3, iar valoarea acesteia devine valoarea întregii
expresii
Exemplu:
x = 14;
y = x > 7 ? 23 : 20;
rezultatul va fi y = 23
Operatorul virgulă
Operatorul virgulă se utilizează într-un şir în care se introduc mai multe expresii. Astfel,
instrucţiunea:
x = (y = 3, y+1),
are ca efect atribuirea valorii 4 variabilei x.
Operatorul de conversie explicită
(expresie cast)
Adesea se doreşte specificarea conversiei valorii unui operand spre un tip dat. Acest lucru este
posibil folosind o construcţie de forma: (tip) operand
Exemplu:
int b = 1;
double r, a = 4;
r= (double)b/a;
Conversii implicite
Există și conversii implicite, conversiile de la un tip inferior la altul superior care se fac automat:
int a = 1;
double z = 3.45;
r = z + a;
r – va fi de tipul double
Alţi operatori ai limbajului C
“ * ” este operator de dereferenţiere - se utilizează pentru a face acces la conţinutul unei zone de
memorie definită prin adresa ei de început.
“ & ” este operator de referenţiere - se aplică pentru a determina adresa de început a zonei de
memorie alocată unei date.