Sunteți pe pagina 1din 20

Tipuri simple de date in C/C++

Tipurile simple (sau tipurile de bază) ale limbajului


C/C++ definesc dimensiunea zonei de memorie ocupată de
valoarea unei variabile precum şi modul în care va fi
interpretat conţinutul acestei zone. Limbajul C/C++ oferă de
asemenea un mecanism de conversie a tipului care va fi
prezentat în cadrul lectiei operatori.
Tipurile de bază ale limbajului C/C++ pot fi grupate în
trei mulţimi:
Tipuri întregi:
char, short, int şi long.
Aceste tipuri sunt utilizate pentru
reprezentarea numerelor întregi.
Diferenţa dintre acestea constă în
dimensiunea zonei de memorie ocupată
de o variabilă de acest tip şi implicit de
mărimea domeniului de valori.
Acest lucru este sintetizat în tabela 1.
Tabela 1. Tipurile întregi
Tipul Dimensiunea Domeniul
memoriei
ocupate
char 8 biţi - 128..127
short 16 biţi - 32768..32767
int 16 biţi - 32768..32767
long 32 biţi -2147483648..
(long int)
2147483647
Tipuri reale: float, double
Aceste tipuri sunt folosite pentru a
reprezenta numere reale.
Ele se disting prin precizia de
reprezentare:
 float – numere reale în simplă precizie –
aproximativ 6 cifre semnificative;
 double pentru numere reale în dublă
precizie – aproximativ 15 cifre semnificative.
Tabela 2. Tipurile reale
Tipul Dimensiunea Domeniul
memoriei
ocupate
float 32 biţi 3,4*10-37 3,4*1037

double 64 biţi 1,7*10-308 1,7*10308

long double 80 biţi 3,4*10-4932 1,1*104932


Tipul vid: void.
Este un tip folosit pentru reprezentări de dimensiune nulă. Acest tip
se utilizeaza atunci cand este necesar sa specificam absenta oricarei
valori( de exemplu, pentru tipul functiilor care nu intorc nici un
rezultat, cazul lui main).
void main ( )
{} /* lista parametrilor este vida, iar functia nu
intoarce nici un rezultat, lucru indicat prin specificarea tipului void,
corpul functiei este vid { }, deci functia nu face nimic */
OBS!
 In limbajul C/C++ nu exista un tip de date special pentru valori logice.
Valoarea 0 este asociata valorii de adevar fals, orice valoare diferita
de 0 fiind asociata valorii de adevar adevarat.
 Pentru tipurile întregi se pot folosi specificările signed şi unsigned.
Specificarea signed tip este echi-valentă cu tip iar unsigned tip are
semnificaţia din Tabela 3.
Tabela 3.
Tipuri întregi unsigned
Tipul Dimensiunea Domeniul

unsigned char 8 biţi 0 .. 255

unsigned short 16 biţi 0 .. 65535

unsigned (int) 16 biţi 0 .. 65535

unsigned long (int) 32 biţi 0 .. 4294967295


Literali

Literalii (sau constantele literale) sunt


valori constante; ele reprezintă valori care nu
pot fi modificate pe parcursul execuţiei unui
program.
In limbajul C se folosesc diferite reguli
sintactice pentru reprezentarea constantelor.
Tabela 4 sintetizează unele din aceste
reguli.
Tabela 4. Constante literale
Constante Exemple Explicaţii

întregi 123, -457, +423, 0 Notaţia zecimală( în baza 10)


012, 03724 Notaţia octală (prefix 0)-în baza 8
0x7F, 0X3, A24E Notaţie hexazecimală(prefix 0x sau 0X)
39u, 0245u, 57F3u în baza 16
Constante fără semn

întregi long 12L, 42153l, 042l Reprezentare pe 32 biţi


423uL, 25AfuL Constante fără semn pe 32 biţi

flotant 3.14159, -12.03, .425 Reprezentare fără exponent


-15.2E-3, 10e-12 Reprezentare cu exponent

caracter ‘a’, ‘A’, ‘^’

Şir de caractere “şir de caractere” Obs! ‘a’ este diferit de “a”


Există şi caractere speciale (de control) care
sunt compuse din caracterul “\” şi din alt caracter.
Acestea sunt:
‘\n’- interlinie (linie nouă); ‘\t’- tabulare;
‘\\’- caracterul \ (backslash); ‘\f’- retur de linie;
‘\0’- caracterul NULL; ‘\’’- caracterul ‘’’
‘\’’ ’- caracterul ”;‘\r’- retur de car;
‘\u’- tabulare verticală; ‘\b’- backspace;
‘\ddd’ - caracter de cod octal ddd;
‘\xhh’ - caracter de cod hexazecimal hh.
Declararea unei variabile
şi a unei constante
 Declararea unei date trebuie sa se faca inainte ca ea sa fie
folosita intr-o instructiune!
 Variabilele sunt obiectele de bază ale limbajului (date care isi
pot modifica valoarea pe parcursul executiei programului) şi
au un nume care este un identificator.
 Un identificator în limbajul C este un şir de caractere care
trebuie să îndeplinească condiţiile:
 primul caracter este literă sau ‘_’ (underscore);
 următoarele caractere sunt caractere alfanumerice (litere sau
cifre) sau ‘_’.
 Nu trebuie să coincidă cu vreun cuvânt cheie
(vezi Tabela 5)
Tabela 5. Cuvintele cheie
ale limbajelor C şi C++
asm delete handle public this
auto do if register throw
break double inline return try
case else int short typedef
catch enum long signed union
char extern new sizeof unsigned
class float operator static virtual
const for overload struct void
continue friend private switch volatile
default goto protected template while
 O variabilă se declară prin una din
următoarele instrucţiuni:
tip nume;
tip nume = valoare;
 Mai multe variabile de acelaşi tip pot fi
declarate în aceeaşi instrucţiune,
despărţite prin virgule!
 O constantă se declară prin:
const tip nume= valoare;
 Directiva #define, intr-un format simplu,
permite definirea unei constante simbolice:
#define nume valoare
 Cuvantul cheie typedef, in cadrul unei
instructiunii declarative, permite definirea unor
tipuri utilizator:
typedef tip_baza nume_tip;
 Declararea unui set de constante(constanta de
tip enumerare) - constante intregi din domeniul
[0,32767]
enum nume_set {lista_constante};
Exemple:
enum logic {NU,DA}; // constanta NU=0, DA=1.
enum set1 {A,B,C}; // constantele A=0,B=1,C=2.
enum set2 {A=2,B=5,C};//A=2,B=5,C=6.
enum set3 {A,B=2,C=4};//A=0,B=2,C=4.
enum set4 {A=5,B,C=B,D};
// A=5,B=6,C=6,D=7.
Exemple:
 int i, j, k,a,b=3,c=2+4;
 float eps = 1.e-4, pi = 3.14159,x=b*2.5,y;

 char n1='\n';

 const double e = 2.71828182845905;

 const float pi = 3.14159;

 #define PI 3.1415

 #define NrMaxElevi 35

 typedef unsigned int byte;

/* tipul de data trebuie definit inainte de a se declara o data


de acel tip */
byte a;
OBS!
 Variabilele se declară la începutul funcţiilor (variabile locale)
sau în exteriorul tuturor funcţiilor (variabile globale care sunt
automat initializate cu 0).
 Se recomanda utilizarea constantelor simbolice atunci cand
dorim sa asociem o denumire mai sugestiva unei valori, ceea
ce conduce la cresterea lizibilitatii programului si modificarii
acestuia mai usor.
 Declararea unui tip de data nu creeaza un tip nou de data, ci
numai un nume nou care este atribuit unui tip existent si
care poate fi folosit la declararea variabilelor de memorie si a
constantelor simbolice, determinand ca un program sa fie
mai usor de citit atunci cand trebuie modificat.
EXPRESII

O expresie în limbajul C – ca în orice limbaj de


programare – este o secvenţă de operatori şi operanzi care
descrie algoritmul de calcul al unei valori(combinatie valida
de operanzi si operatori).
Operanzii într-o expresie pot fi
 nume de variabile sau de constante (literali)
 constante
 funcţii care furnizeaza un rezultat.
Aceşti operanzi, fiecare dintre ei, au un anume tip iar în
funcţie de aceste tipuri se vor aplica operatori specifici
pentru determinarea valorii expresiei.
Operatorii sunt simboluri care
determină executarea anumitor operaţii.
 unari- se aplică pe un singur operand
 binari- se aplică pe doi operanzi
 ternari- se aplică pe trei operanzi
În funcţie de rezultatul obţinut în urma evaluării,
există :
 Expresii matematice : rezultatul este un număr
întreg sau real
 Expresii logice : rezultatul este 0 sau 1 care poate
fi interpretat ca FALSE sau TRUE.
 Expresii te tip text : rezultatul este un şir de
caractere.
 Expresii fără tip, care conţin apelul unei funcţii
care nu furnizează nici un rezultat.

S-ar putea să vă placă și