Fig.3 Exemplu de reprezentare a memoriei calculatorului
După cum știm deja, fiecare variabilă, în funcție de tipul acesteia, ia în memorie un număr diferit de octeți. Ei bine, sau în interpretarea noastră a celulelor. Pentru a cunoaște dimensiunile diferitelor tipuri de variabile, puteți utiliza funcția sizeof (). Mai jos este un program care ilustrează utilizarea sa.
printf ("dimensiunea peremennoi tipa char \ n", sizeof (char));
printf ("razmer peremennoi tipa int \ n", dimensiunea (int));
printf ("float peremernoi tipa float. \ n", sizeof (float));
printf ("razmer peremennoi tipa dublu. \ n", sizeof (dublu));
Rezultatul lucrării:
Figura 4. Programul care ilustrează lucrarea de sizeof ()
Aveți aceste cifre pot fi diferite prin modul în care. Deoarece standardul limbii nu specifică ce tip de spațiu de stocare ar trebui să fie în memorie. Ele sunt specificate numai din relație. De exemplu, dimensiunea dublei nu trebuie să fie mai mică decât dimensiunea floatului.
Asta este, dacă declar o variabilă de tip int în program, 4 octeți (celule) sunt alocate pentru aceasta în memorie.
printf ("adresa peremennoi a% # x \ n", a);
printf ("adresa peremennoi b% # x \ n", b);
Figura 6. Exemplu de localizare a variabilelor în memorie
Așa cum ați observat deja, variabilele din memorie nu sunt scrise una câte una, ci într-un loc arbitrar, dacă numai acolo era gol și acolo era destul spațiu. Singura excepție este matricea. Ele sunt scrise în memorie consecutiv. Uită-te la rezultatul următorului program.
printf ("adresa peremennoi a [0]% # x \ n", a [0]);
printf ("adresa peremennoi a [1]% # x \ n", a [1]);
Fig.7 Poziția matricei în memorie
Vedeți, fiecare element are exact 4 celule, apoi celălalt. În ordine și nimic altceva. Acesta este un fapt important, uneori este folosit în programare. Dar acum nu este vorba despre asta.
Despre totul în ordine.