Tipul de date reprezintă un concept foarte important în C/C++. Orice dată (constantă sau variabilă) este de un numit tip. Tipul datei precizează ce valori poate avea acea dată și ce operații se pot face cu ea.
În C/C++ tipurile de date sunt:
- Tipuri simple
- Tipul
int
- Tipurile
float
șidouble
- Tipul
char
- Tipul pointer
- Tipul
bool
- Tipul
void
- Tipul
- Tipuri derivate
- Tipul tablou
- Tipul structură/clasa
- Tipul enumerare
Acest articol se referă numai la tipurile simple.
Tipul int
- permite memorarea de valori întregi – pozitive sau negative;
- o dată de tip
int
ocupă (de regulă) 4 octeți; astfel, poate memora valori întregi din \([-2^{31},2^{31}-1]\), adică \([-2.147.483.648,2.147.483.647]\).
Exemplu
int n = 100;
În probleme, dacă datele întregi nu depășesc (aproximativ) 2.000.000.000
folosim tipul int
. Pentru datele care depășesc această valoare vom folosi tipul long long
.
Tipurile float
și double
- memorează numere reale;
- separatorul zecimal este punctul .
- se mai numesc tipuri în virgulă mobilă;
- datele reale pot fi date în forma fixă sau în forma științifică (exponențială);
- tipul
float
se reprezinta pe4
octeți; - tipul
double
se reprezinta pe8
octeți;
Exemplu
float p = 3.14, r = 2.5; double A = p * r * r;
Datele reale pot fi scrise în forma științifică (exponențială):
double x = 1.24E+07; // înseamnă 1.24 * 10^7
Tipul char
- se folosește pentru caractere ASCII
- stochează un singur caracter
- se reprezintă pe
1
octet - caracterele sunt delimitate prin apostrof ‘
Exemplu
char c='A';
În C++, o dată de tip char
nu memorează caracterul, ci un număr corespunzător caracterului. Mai multe detalii aici.
Tipul pointer
- o dată de tip pointer memorează o adresă de memorie – de exemplu adresa unei variabile;
Informații despre pointeri găsiți în acest articol.
Tipul bool
Anumite operații care se fac cu datele au ca rezultat valori de adevăr: adevărat sau false.
- tipul
bool
conține două valori:true
șifalse
; - se reprezintă (de regulă) pe
1
octet; - valorile numerice ale lor sunt
1
și0
; - se folosesc în instrucțiuni condiționale și repetitive
Exemplu
bool pp = false;
Tipul void
- cuvântul void înseamnă “nimic” sau “fără valoare”;
- datele de tip
void
nu au valori și nu se pot face cu ele operații; - îl folosim pentru funcții și pointeri
Nu putem declara variabile de tipul void
.
Modificatori de tip
Permit schimbarea modului în care se face reprezentarea internă a unei date. Aceștia sunt:
signed
unsigned
short
long
Pot fi aplicați tipurilor
int
double
char
Tip de date | Reprezentare | Înțeles |
---|---|---|
signed int |
4 octeți cu semn | La fel ca int . Valori întregi din \([-2^{31},2^{31}-1]\), adică \([-2147483648,2147483647]\). |
unsigned int |
4 octeți fără semn | Valori naturale din \([0,2^{32}-1]\), adică \([0 , 4294967295]\). |
long |
4 octeți cu semn | La fel ca int . Echivalent cu long int . |
unsigned long |
4 octeți fără semn | La fel ca unsigned int . Echivalent cu unsigned long int . |
short |
2 octeți cu semn | Valori întregi mici din \([-2^{15},2^{15}-1]\), adică \([-32768,32767]\). Echivalent cu short int . |
unsigned short |
2 octeți fără semn | Valori naturale mici din \([0 , 2^{16}-1]\), adică \([0 , 65535]\). Echivalent cu unsigned short int . |
long long |
8 octeți cu semn | Valori întregi foarte mari din \([-2^{63},2^{63}-1]\). Echivalent cu long long int |
unsigned long long |
8 octeți fără semn | Valori naturale foarte mari din \([0,2^{64}-1]\). Echivalent cu unsigned long long int |
signed char |
1 octet cu semn | Caractere. Valorile numerice sunt din \([-2^{7},2^{7}-1]\), adică \([-128,127]\). |
unsigned char |
1 octet fără semn | Caractere. Valorile numerice sunt din \([0,2^{8}-1]\), adică \([0,255]\). |
long double |
10, 12, 16 | Memorează numere reale mari. Reprezentarea depinde de compilator, dar trebuie să ocupe cel puțin la fel ca double . |