Variabile și tipuri simple de date

Bază~12 min11 pași

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ă

TipCe stocheazăExemplu
intNumere întregi-5, 0, 1000
doubleNumere reale (cu zecimale)3.14, -0.5
charUn singur caracter'A', '7', '!'
boolValoare logicătrue, false
Observația-cheie

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'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;
}
Indiciu

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: sumaSumaSUMA
  • Nu poate fi un cuvânt rezervat (int, for, if etc.)
valid:   suma, nota1, medie_clasa, x
invalid: 1suma, nota-finala, int, suma finala

Atribuirea 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șeli frecvente

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.

Întrebarea 1 / 3

Ce se întâmplă dacă declari o variabilă int și îi atribui valoarea 3.7?