De ce contează?
Gândește-te la variabile ca la niște cutii etichetate pe un raft. Cutia „vârsta" are scris pe ea că ține doar numere întregi și conține 14. Cutia „nota" ține numere cu zecimale și conține 9.50. Nu poți pune un text în cutia pentru numere — tipul determină ce încape. Asta e tot ce e o variabilă: un nume, un tip și o valoare.
Ce este o variabilă?
O variabilă este un spațiu de memorie cu un nume, unde programul stochează o valoare pe care o poate citi sau modifica.
Orice variabilă are trei caracteristici:
- Tip — ce fel de valori acceptă (întreg, real, caracter etc.)
- Nume — identificatorul prin care o accesăm în cod
- Valoare — conținutul curent
Tipurile simple de bază
| Tip | Ce stochează | Exemplu |
|---|---|---|
int | Numere întregi | -5, 0, 1000 |
double | Numere reale (cu zecimale) | 3.14, -0.5 |
char | Un singur caracter | 'A', '7', '!' |
bool | Valoare logică | true, false |
char stochează intern un număr întreg mic (0–255) — codul ASCII al caracterului. 'A' are codul 65, 'a' are 97, '0' are 48. Poți face operații aritmetice cu char ('A' + 1 dă 'B'), dar pentru numere propriu-zise folosește int.
Declararea și inițializarea variabilelor
#include <iostream>
using namespace std;
int main() {
int varsta = 14; // intreg, initializat la 14
double nota = 9.50; // real cu zecimale
char initiala = 'A'; // un singur caracter
bool arePermis = false; // valoare logica
// declarare fara initializare — valoarea e nedefinita (pericol!)
int x;
x = 7; // atribuire separata
cout << varsta << " " << nota << " " << initiala << endl;
return 0;
}Inițializează mereu variabilele la declarare. O variabilă neinițializată conține ce se afla în acea zonă de memorie — o valoare imprevizibilă care cauzează bug-uri greu de reprodus. Regula simplă: int x = 0; în loc de int x;.
Reguli pentru numele variabilelor
- Doar litere, cifre și
_(underscore) - Nu poate începe cu o cifră
- Sensibil la majuscule:
suma≠Suma≠SUMA - Nu poate fi un cuvânt rezervat (
int,for,ifetc.)
valid: suma, nota1, medie_clasa, x
invalid: 1suma, nota-finala, int, suma finalaAtribuirea valorilor
Operatorul = atribuie o valoare. Expresia din dreapta se evaluează complet înainte de atribuire:
int a = 5;
int b = a + 3; // b devine 8 (a e 5 in momentul calculului)
a = a + 1; // a devine 6 (valoarea veche, 5, e folosita in dreapta)Complexitate
Declararea și atribuirea unei variabile costă O(1) — o singură operație, indiferent de valoare.
Greșeala 1: Confunzi = (atribuire) cu == (comparație). x = 5 schimbă valoarea lui x; x == 5 verifică dacă x e egal cu 5 și produce true sau false.
Greșeala 2: Alegi tipul greșit pentru valoare. int medie = 9.75 trunchiază la 9 fără avertisment. Dacă ai nevoie de zecimale, folosește double.
Greșeala 3: Uiți să inițializezi variabila. int suma; suma += 10; dă rezultat nedefinit — suma conține ce era în memorie înainte, nu 0.