Tipuri,Variabile,Operatori si Expresii in C si C++

Imagine preview
(9/10 din 4 voturi)

Acest curs prezinta Tipuri,Variabile,Operatori si Expresii in C si C++.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 1 fisier doc de 11 pagini .

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca.

Fratele cel mare te iubeste, acest download este gratuit. Yupyy!

Domenii: Calculatoare, Automatica, Inteligenta Artificiala, Limbaje de Programare

Extras din document

II. Operatori si expresii.

Un operator este un simbol care arata ce operatii se executa asupra unor operanzi (termeni).

Un operand este o constanta, o variabila, un nume de functie sau o subexpresie a carei valoare este prelucrata direct de operator sau suporta în prealabil o conversie de tip.

Operatorii, dupa numarul de operanzi asupra carora se aplica pot fi: unari, binari si ternari.

În C exista 45 de operatori diferiti dispusi pe 15 niveluri de prioritate.

În functie de tipul operanzilor asupra carora se aplica, operatorii pot fi: aritmetici, relationali, binari, logici, etc.

Operatorii sunt împartiti în clase de precedenta (sau de prioritate). În fiecare clasa de precedenta este stabilita o regula de asociativitate, care indica ordinea de aplicare a operatorilor din clasa respectiva: de la stânga la dreapta sau de la dreapta la stânga.

O expresie este o combinatie de operanzi, separati între ei prin operatori; prin evaluarea unei expresii se obtine o valoare rezultat.Tipul valorii rezultat depinde de tipul operanzilor si a operatorilor folositi.

Evaluarea unei expresii poate avea efecte laterale, manifestate prin modificarea valorii unor variabile.

1. Conversii de tip.

Valorile pot fi convertite de la un tip la altul. Conversia poate fi implicita sau realizata în mod explicit de catre programator.

1.1. Conversii implicite de tip.

Conversiile implicite au loc atunci când este necesar ca operatorii si argumentele functiilor sa corespunda cu valorile asteptate pentru acestea.

Acestea pot fi sintetizate prin tabelul:

Tip Tip la care se converteste implicit

char int, short int, long int

int char (cu trunchiere)

short int (cu trunchiere)

long int (cu extensia semnului)

short int ca si int

long int ca si int

float double

int, short int, long int

double float

int, short int, long int

1.2. Conversii aritmetice.

Când un operator binar se aplica între doi operanzi de tip diferit, are loc o conversie implicita a tipului unuia dintre ei, si anume, operandul de tip “mai restrâns” este convertit la tipul “mai larg” al celuilalt operand. Astfel în expresia f + i, operandul int este convertit în float.

Operatorii aritmetici convertesc automat operanzii la un anumit tip, daca operanzii sunt de tip diferit. Se aplica urmatoarele reguli:

• operanzii char si short int se convertesc în int; operanzii float se convertesc în double.

• daca unul din operanzi este double restul operanzilor se convertesc în double iar rezultatul este tot double.

• daca unul din operanzi este long restul operanzilor se convertesc în long , iar rezultatul este tot long.

• daca unul din operanzi este unsigned restul operanzilor se convertesc în unsigned , iar rezultatul este tot unsigned.

• daca nu se aplica ultimele 3 reguli, atunci operanzii vor fi de tip int si rezultatul de asemeni de tip int.

double ¬float

­

long

­

unsigned

­

int ¬char, short

Astfel n = c - ‘0’ în care c reprezinta un caracter cifra calculeaza valoarea întreaga a acestui caracter.

Conversii implicite se produc si în cazul operatiei de atribuire, în sensul ca valoarea din partea dreapta este convertita la tipul variabilei acceptoare din stânga.

Astfel pentru declaratiile:

int i;

float f;

double d;

char c;

sunt permise atribuirile:

i=f; /* cu trunchierea partii fractionare */

f=i;

d=f;

f=d;

c=i;

i=c;

1.3. Conversiile de tip explicite (cast).

Conversiile explicite de tip (numite si cast) pot fi fortate în orice expresie folosind un operator unar (cast) într-o constructie de forma:

(tip) expresie

în care expresia este convertita la tipul numit.

Operatorul cast are aceeasi precedenta cu a unui operator unar.

Astfel functia sqrt() din biblioteca <math.h> cere un argument double, deci va fi apelata cu un cast: sqrt((double) n).

Apelurile cu argumente de alt tip vor fi convertite în mod automat la tipul double: x=sqrt(2) va converti constanta 2 în 2.0.

2. Operatorii aritmetici.

Operatorii aritmetici binari sunt: +, -, *, / si % (modul = restul impartirii întregi).

Prioritatea operatorilor aritmetici este:

+, - unari

*, /, % binari

+, - binari

Regula de asociativitate este de la stânga la dreapta (la prioritati egale operatorii sunt evaluati de la stânga la dreapta).

Operatori multiplicativi

operator descriere tip operanzi tip rezultat precedenta

* înmultire aritmetic int,unsigned,long,double 3

/ împartire aritmetic int,unsigned,long,double 3

% restul împartirii întregi întreg int,unsigned,long 3

Operatori aditivi

operator descriere tip operanzi tip rezultat precedenta

+ adunare aritmetici

pointer si întreg int,unsigned,long,double

pointer 4

- scadere aritmetici

pointer si întreg

doi pointeri int,unsigned,long,double

pointer

int 4

Fisiere in arhiva (1):

  • Tipuri,variabile,operatori si expresii in C si C++.DOC