Strukture v C.

Structures C



V C je struktura uporabniško definirana spremenljivka, ki se uporablja za shranjevanje zbirke spremenljivk pod eno samo entiteto. Za razlago izvajanja in uporabnosti struktur v C. uporabimo preprosto analogijo.

Recimo, da želimo shraniti podatke o uporabnikih, ki uporabljajo določeno storitev. Te informacije lahko vključujejo uporabniško ime, e -pošto, naslov, način storitve itd. Za shranjevanje takšnih podatkov lahko vsak atribut ustvarimo kot samostojno spremenljivko. Ko pa imamo več kot deset uporabnikov, lahko koda uide izpod nadzora in postane zelo težka in naporna za branje.







Da bi to rešili, lahko ustvarimo strukturo. V strukturi lahko shranimo vse atribute, ki jih delijo vsi uporabniki, in nato dodamo edinstvene spremenljivke za vsakega uporabnika.



Oglejmo si različne primere, da vidimo, kako to izvesti.



Kako definirati strukturo v jeziku C

Za definiranje strukture v jeziku C uporabimo ključno besedo struct, ki ji sledi ime strukture. Za imenom imamo par kodrastih naramnic, kamor dodamo člane.





Razmislite o spodnji skladnji:

structstruct_name
{
/ * podatki */
vnesite ime_člana;
vnesite ime -člana2;
vnesite ime -člana3;

...
tipime_članaN;
};

Ime strukture je lahko karkoli želite, če se drži konvencije poimenovanja programskega jezika C.



Primer strukture uporabniške analogije lahko implementiramo kot:

structuporabniki
{
charuporabniško ime[dvajset];
charE-naslov[225];
charnaslov[petdeset];
intstarost;
bool registriran;
};

Kako ustvariti strukturne spremenljivke

Obstajata dva glavna načina za ustvarjanje strukturnih spremenljivk. Prva je, da jih razglasimo kot normalne spremenljivke, druga pa, da jih nastavimo z zavitimi oklepaji.

Spodnji primer prikazuje, kako razglasiti strukturne spremenljivke kot standardne spremenljivke C.

structuporabniki
{
charuporabniško ime[dvajset];
charE-naslov[225];
charnaslov[petdeset];
intstarost;
bool registriran;
};

intglavni(intargc, char const *argv[])
{
structuporabniki user1,uporabnik2,uporabnik3
vrnitev 0;
}

Druga metoda ustvarjanja strukturnih spremenljivk je prikazana spodaj:

structuporabniki
{
charuporabniško ime[dvajset];
charE-naslov[225];
charnaslov[petdeset];
intstarost;
bool registriran;
}uporabnik1,uporabnik2,uporabnik3;

V tem primeru jih ustvarimo med deklariranjem strukture.

Struktura člana Init

Med ustvarjanjem ne morete inicializirati članov strukture, ker za tip ni dodeljenega pomnilnika.

Če želite inicializirati člane strukture, uporabite zavite oklepaje, kot je prikazano spodaj:

structuporabniki
{
charuporabniško ime[dvajset];
charE-naslov[225];
charnaslov[petdeset];
intstarost;
bool registriran;
};
intglavni(intargc, char const *argv[])
{
structuporabniki user1= {'moje uporabniško ime', '[zaščiteno po e -pošti]', 35, prav}
vrnitev 0;
}

Člani strukture dostopa

Za dostop do članov strukture uporabljamo operater pik, ki se začne z imenom strukture, piko in imenom člana.

structuporabniki
{
charuporabniško ime[dvajset];
charE-naslov[225];
charnaslov[petdeset];
intstarost;
bool registriran;
};
intglavni(intargc, char const *argv[])
{
structuporabniki user1= {'moje uporabniško ime', '[zaščiteno po e -pošti]', 35, prav}
uporabnik1.E-naslov = '[zaščiteno po e -pošti]'
vrnitev 0;
}

V tem primeru dostopamo do članov user1.

Typedef ključna beseda

Za ustvarjanje vzdevka za podatkovne vrste uporabimo ključno besedo typedef, zaradi česar je koda bolj berljiva.

Na primer:

typedef structuporabniki
{
charuporabniško ime[dvajset];
charE-naslov[225];
charnaslov[petdeset];
intstarost;
bool registriran;
}u;
intglavni(intargc, char const *argv[])
{
ti uporabnik1= {'moje uporabniško ime', '[zaščiteno po e -pošti]', 35, prav}
uporabnik1.registrirano = napačno
vrnitev 0;
}

V zgornjem primeru smo za strukturo uporabnikov ustvarili vzdevek u. Zato uporabnikov struct ni treba vedno klicati. Lahko vas uporabimo, kot je opredeljeno zgoraj.

Strukturni kazalci

Lahko imate tudi kazalec na strukturo. S tem lahko dostopate do članov z operaterjem ->.

Na primer:

typedef structuporabniki
{
charuporabniško ime[dvajset];
charE-naslov[225];
charnaslov[petdeset];
intstarost;
bool registriran;
}u;
intglavni(intargc, char const *argv[])
{
ti uporabnik1= {'moje uporabniško ime', '[zaščiteno po e -pošti]', 35, prav}

// kazalec na drugo strukturo
u*user_ptr= &uporabnik1
user_ptr->uporabniško ime= 'ptrusername'
vrnitev 0;
}

Zaključek

Ta priročnik zajema osnove dela s strukturami v programskem jeziku C.

Hvala za branje!