Tipuri, variabile, operatori și expresii în C și C++

Curs
9.3/10 (4 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 11 în total
Cuvinte : 3165
Mărime: 33.37KB (arhivat)
Publicat de: Theodor Marginean
Puncte necesare: 0

Extras din curs

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

Preview document

Tipuri, variabile, operatori și expresii în C și C++ - Pagina 1
Tipuri, variabile, operatori și expresii în C și C++ - Pagina 2
Tipuri, variabile, operatori și expresii în C și C++ - Pagina 3
Tipuri, variabile, operatori și expresii în C și C++ - Pagina 4
Tipuri, variabile, operatori și expresii în C și C++ - Pagina 5
Tipuri, variabile, operatori și expresii în C și C++ - Pagina 6
Tipuri, variabile, operatori și expresii în C și C++ - Pagina 7
Tipuri, variabile, operatori și expresii în C și C++ - Pagina 8
Tipuri, variabile, operatori și expresii în C și C++ - Pagina 9
Tipuri, variabile, operatori și expresii în C și C++ - Pagina 10
Tipuri, variabile, operatori și expresii în C și C++ - Pagina 11

Conținut arhivă zip

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

Alții au mai descărcat și

AutoCad

APERTURE - controleazã mãrimea cursorului selector, caracteristic modului object snap. ARC - traseazã un arc de cerc de orice dimensiune. A -...

Biblioteca de Șabloane Standard

Biblioteca de Sabloane Standard (STL) asigura o abstractizare standardizata a datelor prin intermediul containerelor si o abstractizare procedurala...

Clase Derivate

1. Clase derivate. Prin mostenire, atributele unei clase de baza sunt transmise unor clase derivate. Derivarea permite definirea unor clase noi,...

Clase în Java

Clase pentru miniaplicatii Miniaplicatiile constituie extensii ale unei clase deja existente java.applet.Applet. Structura clasei unui applet...

Clase

1. Programare procedurala –Programare orientata pe obiecte. Limbajul C, ca si Pascal, utilizeaza modelul programarii structurate procedurale, care...

Comunicații internet

2.1. Stilurile caracterelor {n sfirsit pagina dvs. contine ceva, chiar daca este vorba numai de un nume. Vom analiza in continuare elementele de...

Crearea unei aplicații independente în Java

Toate aplicatiile Java contin o metoda main(), spre deosebire de miniaplicatii. class FirstApp { public static void main( String argsst) {...

Curs Excel

Deplasarea prin foi Deplasarea dintr-o foaie in alta se face cu clic cu mouse-ul pe eticheta foii dorite. Deplasarea prin celule Va puteti...

Te-ar putea interesa și

Utilizarea și Programarea Calculatoarelor

Introducere în programarea calculatoarelor - Circuitele electronice ale calculatoarelor sunt capabile sa efectueze un numar limitat de operaCii...

Utilizarea și Programarea Calculatorului

Introducere în programarea calculatoarelor 1. Utilizarea unui calculator 2. Programarea unui calculator 3. Structura şi funcţionarea unui...

Programarea Calculatoarelor

1. Introducere in programarea calculatoarelor si prezentarea notiunii de algoritm Programarea calculatoarelor este procesul de proiectare,...

Curs Programare C++

Cap 1. Reprezentarea informaţiilor 1.1 Reprezentarea numerelor întregi în sistemul binar Un număr natural se reprezintǎ ca o colecţie de cifre....

Limbaj de Programare

Prin algoritm putem întelege o succesiune finita de operatii. Acesta presupune executarea unor calcule într-o anumita ordine. Putem considera ca...

Programarea Calculatoarelor și Limbaje de Programare

Introducere Lucrarea de faţă îşi propune să acopere, nevoile programatorului de aplicaţie inginerească care, spre deosebire de informaticianul de...

Programare II - limbajul C

Cap 1 INTRODUCERE ÎN LIMBAJUL C 1.1 Scurt istoric 1.2 Forma unui program C 1.3 Compilarea unui program C 1.1 Scurt istoric Strămoşii...

Programare în Java

Introducere Incepand cu anul 1977 incepe utilizarea pe scara larga a calculatoarelor personale, pretul acestora facandu-le accesibile tuturor. In...

Ai nevoie de altceva?