Tipuri complexe de date în si

Tipuri complexe de date în si

O structură este unirea mai multor obiecte, posibil de diferite tipuri, sub același nume, care este tipul structurii. Obiectele pot fi variabile, tablouri, pointeri și alte structuri.

Structurile ne permit să tratăm un grup de obiecte conexe nu ca un set de elemente separate, ci ca un întreg. Structura este un tip complex de date, compus din tipuri simple.

int zi; // 4 octeți

char * luna; // 4 octeți

int an; // 4 octeți
>;

Câmpurile de structură sunt stocate în memorie în ordinea în care sunt declarate:

În acest exemplu, structura de date ocupă 12 de octeți în memorie. În plus, indicatorul * lună în timpul inițializării va fi începutul unui șir de text cu numele lunii alocate în memorie.

nume de caractere [20]; // numele de familie

caracterele [20]; // nume

struct date bd; // Data nașterii
>;

Inițializarea câmpurilor de structură

Inițializarea câmpurilor de structură poate fi realizată în două moduri:

În prima metodă, inițializarea este efectuată în următoarea formă:

Numele elementului de structură este compus. Pentru a vă referi la un element de structură, trebuie să specificați numele structurii și numele elementului însuși. Ele sunt separate de un punct:

printf (".% s", bd.day, bd.month, bd.year);

Cea de-a doua modalitate de a iniția obiecte de limbaj C utilizând funcțiile I / O.

#include
#include
struct date

Câmpuri bit

Folosind structuri, puteți împacheta componente întregi chiar mai strâns decât ați făcut cu un matrice.

Setul de cifre al unui întreg poate fi împărțit în câmpuri de biți, fiecare dintre acestea fiind alocat pentru o anumită variabilă. Când lucrați cu câmpuri de biți, numărul de biți alocați pentru stocarea fiecărui câmp este separat de nume printr-un colon

nume de tip: NumberBit

Când lucrați cu câmpuri de biți, trebuie să vă asigurați că valoarea variabilei nu necesită mai multă memorie decât este alocată.

Exemplu: Dezvoltați un program care împachetează data într-un format

#include
#include
# definește YEAR0 1980
struct date

ziua nesemnată scurtă: 5;

luna nesemnate: 4;

anul nesemnificativ scurt: 7;
>;
int main ()

struct astăzi;

Indicatori la structuri

Pentru a lucra cu matricea, puteți utiliza indicatorul p sau numele matricei:
expresie-> identificator
(* expresie)

expresia este un indicator al unei structuri sau al unei uniuni;
identificator - domeniul structurii sau asociației;

Alocarea dinamică a memoriei pentru structuri

Alocarea dinamică a memoriei pentru o serie de structuri este necesară dacă dimensiunea matricei nu este cunoscută în prealabil. Pentru a determina dimensiunea unei structuri în octeți, utilizați operația

sizeof (denumirea structurii);

Exemplu O bibliotecă de 3 cărți

#include
#include

#include
struct carte

Articole similare