3.2.10. Operatorul dimensiune (sizeof)

2019/01/28 in Programare in C

Dimensiunea in octeti a unei date sau al unui tip se poate determina folosind operandul sizeof. El poate fi folosit sub forma:

sizeof data

sau

sizeof(tip)

unde:

Poate fi:
data - un nume de variabila simpla;
- un nume de tablou;
- un nume de structura;
- referirea la elementul unui tablou (variabila cu indici);
- referirea la elementul unei structuri.

Poate fi:
tip - un cuvant sau cuvintele cheie ale unui tip predefinit;
- o constructie care defineste un tip.

Expresia sizeof data poate fi scrisa si sub forma sizeof(data). Ea are ca valoare dimensiunea in octeti a operandului data. Astfel, daca data este:

numele unei variabile simple - atunci rezultatul va fi numarul de octeti al variabilei respective;
numele unui tablou - atunci rezultatul va fi numarul de octeti al zonei de memorie alocate tabloului respectiv;
numele unei structuri - atunci rezultatul va fi numarul de octeti al zonei de memorie alocate structurii respective;
etc.

Expresia sizeof(tip) are ca valoare numarul de octeti alocati pentru reprezentarea unei date de tip tip.

Operatorul sizeof este unar si are aceeasi prioritate ca restul operatorilor unari ai limbajului C.

Exemple:

1.

int x;
sizeof x

are valoarea 2, deoarece pentru variabila x se aloca 2 octeti.

2.

long double y[7];
sizeof y[3]

are valoarea 10, deoarece pentru o data de tip long double se aloca 10 octeti.

sizeof y

are valoarea 70, deoarece tabloul are 7 elemente in total.

3.

sizeof(char)

are valoarea 1, deoarece pentru o data de tip char se aloca 1 octet.

3.2.11. Operatorul adresa