# Tipuri de date și declararea variabilelor

> Pagina: https://bacalaurescu.ro/informatica/lectii/tipuri-de-date-si-variabile/tipuri-si-declarare
> Markdown: https://bacalaurescu.ro/informatica/lectii/tipuri-de-date-si-variabile/tipuri-si-declarare.md
> Sursa: Bacalaurescu (bacalaurescu.ro), conținut gratuit pentru BAC 2027.

Materia: [Informatică](https://bacalaurescu.ro/informatica)

Capitolul: [Tipuri de date și variabile](https://bacalaurescu.ro/informatica/lectii/tipuri-de-date-si-variabile)
Actualizat: 2026-11-01

Tipurile int, float, double, char, bool și cum declarăm și inițializăm variabile.

## Pe scurt pentru BAC

- `int` memorează numere întregi, `float` și `double` numere reale, `char` un caracter, iar `bool` adevărat sau fals.
- `double` are precizie mai mare decât `float`, iar la BAC se folosesc de regulă `int` și `double`.
- O variabilă nedeclarată nu poate fi folosită, iar una neinițializată are o valoare imprevizibilă.
- Semnul `=` înseamnă atribuire: se calculează întâi partea din dreapta, apoi rezultatul se pune în variabila din stânga.

## Tipurile fundamentale

| Tip | Ce memorează | Exemplu |
|---|---|---|
| `int` | numere întregi | `int n = 7;` |
| `float` / `double` | numere reale | `double x = 3.14;` |
| `char` | un caracter | `char c = 'A';` |
| `bool` | adevărat/fals | `bool ok = true;` |

`double` are precizie mai mare decât `float`; la BAC folosim de regulă `int` și `double`.

## Declarare și inițializare

~~~cpp
int a;
int b = 10;
int c = b + 5;
~~~

O variabilă nedeclarată nu poate fi folosită; o variabilă neinițializată are o valoare imprevizibilă.

## Atribuirea

Semnul `=` NU e egalitate matematică, ci ATRIBUIRE: "pune în stânga valoarea din dreapta".

~~~cpp
int x = 3;
x = x + 2;
~~~

După a doua linie, `x` este `5`: se calculează întâi dreapta (3+2), apoi rezultatul se pune în `x`.

## Exemplu rezolvat

Ce valori au `a` și `b` la final?

~~~cpp
int a = 4, b = 9;
a = b;
b = a;
~~~

După `a = b`, `a` devine `9`. Apoi `b = a` pune `9` în `b` (care era deja 9). Final: `a = 9`, `b = 9`. Valoarea inițială a lui `a` (4) s-a pierdut: pentru interschimbare era nevoie de o variabilă auxiliară.

## Greșeli frecvente

1. Interschimbarea fără auxiliar pierde o valoare (exemplul de mai sus).
2. `char` folosește apostrof (`'A'`), șirurile folosesc ghilimele (`"AB"`).
3. Împărțirea a doi `int` dă tot `int`: `7 / 2` este `3`, nu `3.5`.
