Strukture u C

Structures C

U C-u je struktura korisnički definirana varijabla koja se koristi za spremanje zbirke varijabli u jedan entitet. Upotrijebimo jednostavnu analogiju za objašnjenje implementacije i korisnosti struktura u C.

Pretpostavimo da želimo pohraniti podatke o korisnicima koji koriste određenu uslugu. Takvi podaci mogu uključivati ​​korisničko ime, e -poštu, adresu, način rada usluge i slično. Da bismo pohranili takve podatke, možemo pristupiti stvaranju svakog atributa kao samostalne varijable. Međutim, kada imamo deset i više korisnika, kôd može izmaknuti kontroli i postati vrlo teško i zamorno za čitanje.



Da bismo to riješili, možemo stvoriti strukturu. Unutar strukture možemo pohraniti sve atribute koje dijele svi korisnici, a zatim dodati jedinstvene varijable za svakog korisnika.



Pogledajmo razne primjere kako bismo vidjeli kako to implementirati.



Kako definirati strukturu u jeziku C

Za definiranje strukture u jeziku C koristimo ključnu riječ struct iza koje slijedi naziv strukture. Nakon imena imamo par kovrčavih zagrada u koje zbrajamo članove.

Razmotrite donju sintaksu:

structstruct_name
{
/ * podaci */
upišite member_name;
upišite ime -člana2;
upišite ime -člana3;

...
tipime_članaN;
};

Naziv strukture može biti sve što želite sve dok se pridržava konvencije imenovanja programskog jezika C.



Primjer strukture korisničke analogije možemo implementirati kao:

structkorisnika
{
charKorisničko ime[dvadeset];
chare -mail[225];
charadresa[pedeset];
intdob;
bool registriran;
};

Kako stvoriti strukturne varijable

Postoje dva glavna načina za stvaranje strukturnih varijabli. Prvi je da ih deklarirate kao normalne varijable, a drugi da ih postavite pomoću kovrčavih zagrada.

Primjer u nastavku pokazuje kako deklarirati strukturne varijable kao standardne C varijable.

structkorisnika
{
charKorisničko ime[dvadeset];
chare -mail[225];
charadresa[pedeset];
intdob;
bool registriran;
};

intglavni(intargc, char konst *argv[])
{
structkorisnici korisnik1,korisnik2,korisnik3
povratak 0;
}

Druga metoda stvaranja strukturnih varijabli je prikazana u nastavku:

structkorisnika
{
charKorisničko ime[dvadeset];
chare -mail[225];
charadresa[pedeset];
intdob;
bool registriran;
}korisnik1,korisnik2,korisnik3;

U ovom primjeru stvaramo ih tijekom deklaracije strukture.

Struktura člana Init

Ne možete inicijalizirati članove strukture tijekom stvaranja jer nema memorije dodijeljene za tip.

Za inicijalizaciju članova strukture upotrijebite kovrčave zagrade kako je prikazano u nastavku:

structkorisnika
{
charKorisničko ime[dvadeset];
chare -mail[225];
charadresa[pedeset];
intdob;
bool registriran;
};
intglavni(intargc, char konst *argv[])
{
structkorisnici korisnik1= {'mojekorisničko ime', '[zaštićena e -pošta]', 35, pravi}
povratak 0;
}

Članovi strukture pristupa

Za pristup članovima strukture koristimo dot operator koji počinje imenom strukture, točkom i imenom člana.

structkorisnika
{
charKorisničko ime[dvadeset];
chare -mail[225];
charadresa[pedeset];
intdob;
bool registriran;
};
intglavni(intargc, char konst *argv[])
{
structkorisnici korisnik1= {'mojekorisničko ime', '[zaštićena e -pošta]', 35, pravi}
korisnik1.e -mail = '[zaštićena e -pošta]'
povratak 0;
}

U ovom primjeru pristupamo članovima user1.

Typedef ključna riječ

Ključnu riječ typedef koristimo za stvaranje pseudonima za vrste podataka, čineći kôd čitljivijim.

Na primjer:

typedef structkorisnika
{
charKorisničko ime[dvadeset];
chare -mail[225];
charadresa[pedeset];
intdob;
bool registriran;
}u;
intglavni(intargc, char konst *argv[])
{
ti korisnik1= {'mojekorisničko ime', '[zaštićena e -pošta]', 35, pravi}
korisnik1.registrirano = lažno
povratak 0;
}

U gornjem primjeru stvorili smo pseudonim u za strukturu korisnika. Stoga ne moramo svaki put zvati korisnike struct -a. Možemo vas koristiti kako je gore definirano.

Pokazivači na strukturu

Također možete imati pokazivač na strukturu. Na taj način možete pristupiti članovima pomoću operatora ->.

Na primjer:

typedef structkorisnika
{
charKorisničko ime[dvadeset];
chare -mail[225];
charadresa[pedeset];
intdob;
bool registriran;
}u;
intglavni(intargc, char konst *argv[])
{
ti korisnik1= {'mojekorisničko ime', '[zaštićena e -pošta]', 35, pravi}

// pokazivač na drugu strukturu
u*user_ptr= &korisnik1
user_ptr->Korisničko ime= 'ptrusername'
povratak 0;
}

Zaključak

Ovaj vodič pokriva osnove rada sa strukturama u programskom jeziku C.

Hvala na čitanju!