Structuri în C

Structures C



În C, o structură este o variabilă definită de utilizator utilizată pentru a stoca o colecție de variabile sub o singură entitate. Să folosim o analogie simplă pentru a explica implementarea și utilitatea structurilor în C.

Să presupunem că dorim să stocăm informații despre utilizatorii care utilizează un anumit serviciu. Astfel de informații pot include numele de utilizator, adresa de e-mail, adresa, modul de serviciu și altele. Pentru a stoca astfel de informații, putem crea fiecare atribut ca o variabilă independentă. Cu toate acestea, când avem zece utilizatori în plus, codul poate scăpa de sub control și poate deveni foarte dificil și obositor de citit.







Pentru a rezolva acest lucru, putem crea o structură. În interiorul structurii, putem stoca toate atributele partajate de toți utilizatorii și apoi adăugăm variabile unice pentru fiecare utilizator.



Să aruncăm o privire la diferite exemple pentru a vedea cum să implementăm acest lucru.



Cum se definește o structură în C

Pentru a defini o structură în C, folosim cuvântul cheie struct urmat de numele structurii. După nume, avem o pereche de aparate dentare în care adăugăm membrii.





Luați în considerare sintaxa de mai jos:

structstruct_name
{
/* date */
tastați nume_membru;
tastați nume_membru2;
tastați nume_membru3;

...
tipnume_numeN;
};

Numele structurii poate fi orice doriți, atâta timp cât respectă convenția de denumire a limbajului de programare C.



Putem implementa un exemplu de structură a analogiei utilizatorului ca:

structutilizatori
{
charnume de utilizator[douăzeci];
chare-mail[225];
charabordare[cincizeci];
intvârstă;
bool înregistrat;
};

Cum se creează variabile de structură

Există două modalități principale de a crea variabile de structură. Prima este să le declarați ca variabile normale, iar cealaltă este să le setați folosind acolade.

Exemplul de mai jos arată cum să declarați variabilele structurii ca variabile standard C.

structutilizatori
{
charnume de utilizator[douăzeci];
chare-mail[225];
charabordare[cincizeci];
intvârstă;
bool înregistrat;
};

intprincipal(intargc, char const *argv[])
{
structutilizatori user1,utilizator2,utilizator3
întoarcere 0;
}

Cealaltă metodă de creare a variabilelor de structură este așa cum se arată mai jos:

structutilizatori
{
charnume de utilizator[douăzeci];
chare-mail[225];
charabordare[cincizeci];
intvârstă;
bool înregistrat;
}utilizator1,utilizator2,utilizator3;

În acest exemplu, le creăm în timpul declarării structurii.

Structură Membru Init

Nu puteți inițializa membrii structurii în timpul creației, deoarece nu există memorie alocată pentru tip.

Pentru a inițializa membrii unei structuri, utilizați acoladele, așa cum se arată mai jos:

structutilizatori
{
charnume de utilizator[douăzeci];
chare-mail[225];
charabordare[cincizeci];
intvârstă;
bool înregistrat;
};
intprincipal(intargc, char const *argv[])
{
structutilizatori user1= {„numele meu de utilizator”, „[email protected]”, 35, Adevărat}
întoarcere 0;
}

Membrii structurii de acces

Pentru a accesa membrii unei structuri, folosim operatorul punct, începând cu numele structurii, un punct și numele membrului.

structutilizatori
{
charnume de utilizator[douăzeci];
chare-mail[225];
charabordare[cincizeci];
intvârstă;
bool înregistrat;
};
intprincipal(intargc, char const *argv[])
{
structutilizatori user1= {„numele meu de utilizator”, „[email protected]”, 35, Adevărat}
utilizator1.e-mail = „[email protected]”
întoarcere 0;
}

În acest exemplu, accesăm membrii user1.

Cuvânt cheie Typedef

Folosim cuvântul cheie typedef pentru a crea un alias pentru tipurile de date, făcând codul mai lizibil.

De exemplu:

typedef structutilizatori
{
charnume de utilizator[douăzeci];
chare-mail[225];
charabordare[cincizeci];
intvârstă;
bool înregistrat;
}tu;
intprincipal(intargc, char const *argv[])
{
ești utilizator1= {„numele meu de utilizator”, „[email protected]”, 35, Adevărat}
utilizator1.înregistrat = fals
întoarcere 0;
}

În exemplul de mai sus, am creat un alias u pentru structura utilizatorilor. Prin urmare, nu este nevoie să apelăm de fiecare dată utilizatorii struct. Vă putem folosi u așa cum s-a definit mai sus.

Indicatori de structură

De asemenea, puteți avea un pointer către o structură. Acest lucru vă permite să accesați membrii utilizând operatorul ->.

De exemplu:

typedef structutilizatori
{
charnume de utilizator[douăzeci];
chare-mail[225];
charabordare[cincizeci];
intvârstă;
bool înregistrat;
}tu;
intprincipal(intargc, char const *argv[])
{
ești utilizator1= {„numele meu de utilizator”, „[email protected]”, 35, Adevărat}

// pointer către o altă structură
tu*user_ptr= &utilizator1
user_ptr->nume de utilizator= „ptrusername”
întoarcere 0;
}

Concluzie

Acest ghid acoperă elementele de bază ale lucrului cu structuri în limbajul de programare C.

Mulțumesc că ai citit!