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!