Struktūros C

Structures C



C sistemoje struktūra yra vartotojo apibrėžtas kintamasis, naudojamas kintamųjų rinkiniui saugoti viename objekte. Pasinaudokime paprasta analogija, kad paaiškintume struktūrų įgyvendinimą ir naudingumą C.

Tarkime, kad norime išsaugoti informaciją apie vartotojus, besinaudojančius konkrečia paslauga. Tokia informacija gali apimti vartotojo vardą, el. Pašto adresą, adresą, aptarnavimo režimą ir pan. Norėdami išsaugoti tokią informaciją, galime sukurti kiekvieną atributą kaip atskirą kintamąjį. Tačiau, kai turime daugiau nei dešimt vartotojų, kodas gali nekontroliuojamas ir tampa labai sunkus ir varginantis skaityti.







Norėdami tai išspręsti, galime sukurti struktūrą. Struktūroje galime išsaugoti visus visų vartotojų bendrinamus atributus ir tada pridėti unikalių kintamųjų kiekvienam vartotojui.



Pažvelkime į įvairius pavyzdžius, kad pamatytume, kaip tai įgyvendinti.



Kaip apibrėžti struktūrą C

Norėdami apibrėžti struktūrą C, naudojame struktūros raktinį žodį, po kurio eina struktūros pavadinimas. Po pavadinimo turime porą garbanotų petnešų, kur pridedame narius.





Apsvarstykite toliau pateiktą sintaksę:

strukturastruktūros_pavadinimas
{
/ * duomenys */
įveskite nario_vardas;
įveskite member_name2;
įveskite nario_vardas3;

...
tiponarys_vardasN;
};

Struktūros pavadinimas gali būti bet koks, ko tik norite, jei jis atitinka C programavimo kalbos pavadinimo konvenciją.



Vartotojo analogijos struktūros pavyzdį galime įgyvendinti taip:

strukturavartotojų
{
anglisVartotojo vardas[dvidešimt];
anglispaštą[225];
anglisadresu[penkiasdešimt];
tarptamžiaus;
bulas registruotas;
};

Kaip sukurti struktūros kintamuosius

Yra du pagrindiniai struktūros kintamųjų kūrimo būdai. Pirmasis yra paskelbti juos kaip įprastus kintamuosius, o kitas - nustatyti juos naudojant garbanotus skliaustus.

Žemiau pateiktame pavyzdyje parodyta, kaip struktūros kintamuosius deklaruoti kaip standartinius C kintamuosius.

strukturavartotojų
{
anglisVartotojo vardas[dvidešimt];
anglispaštą[225];
anglisadresu[penkiasdešimt];
tarptamžiaus;
bulas registruotas;
};

tarptpagrindinis(tarptargc, anglis konst *argv[])
{
strukturavartotojai user1,vartotojas2,vartotojas3
grįžti 0;
}

Kitas struktūros kintamųjų kūrimo būdas yra toks:

strukturavartotojų
{
anglisVartotojo vardas[dvidešimt];
anglispaštą[225];
anglisadresu[penkiasdešimt];
tarptamžiaus;
bulas registruotas;
}vartotojas1,vartotojas2,vartotojas3;

Šiame pavyzdyje mes juos sukuriame struktūros deklaravimo metu.

Struktūra Narys Init

Kurdami negalite inicijuoti struktūros narių, nes tipui nėra priskirtos atminties.

Norėdami inicijuoti struktūros elementus, naudokite garbanotas petnešas, kaip parodyta žemiau:

strukturavartotojų
{
anglisVartotojo vardas[dvidešimt];
anglispaštą[225];
anglisadresu[penkiasdešimt];
tarptamžiaus;
bulas registruotas;
};
tarptpagrindinis(tarptargc, anglis konst *argv[])
{
strukturavartotojai user1= {'myusername', '[apsaugotas el. paštas]', 35, tiesa}
grįžti 0;
}

Prieigos struktūros nariai

Norėdami pasiekti struktūros narius, naudojame taško operatorių, pradedant struktūros pavadinimu, tašku ir nario vardu.

strukturavartotojų
{
anglisVartotojo vardas[dvidešimt];
anglispaštą[225];
anglisadresu[penkiasdešimt];
tarptamžiaus;
bulas registruotas;
};
tarptpagrindinis(tarptargc, anglis konst *argv[])
{
strukturavartotojai user1= {'myusername', '[apsaugotas el. paštas]', 35, tiesa}
vartotojas1.paštą = '[apsaugotas el. paštas]'
grįžti 0;
}

Šiame pavyzdyje mes pasiekiame user1 narius.

Tipiškas raktinis žodis

Mes naudojame raktinį žodį typedef, kad sukurtume duomenų tipų slapyvardį, kad kodas būtų lengviau skaitomas.

Pavyzdžiui:

typedef strukturavartotojų
{
anglisVartotojo vardas[dvidešimt];
anglispaštą[225];
anglisadresu[penkiasdešimt];
tarptamžiaus;
bulas registruotas;
}u;
tarptpagrindinis(tarptargc, anglis konst *argv[])
{
u vartotojas 1= {'myusername', '[apsaugotas el. paštas]', 35, tiesa}
vartotojas1.registruotas = klaidinga
grįžti 0;
}

Pirmiau pateiktame pavyzdyje sukūrėme vartotojo struktūros slapyvardį u. Todėl mums nereikia kiekvieną kartą skambinti „Struct“ vartotojams. Mes galime naudoti jus, kaip apibrėžta aukščiau.

Struktūros rodyklės

Taip pat galite turėti žymeklį prie struktūros. Tai darydami galite pasiekti narius naudodami operatorių ->.

Pavyzdžiui:

typedef strukturavartotojų
{
anglisVartotojo vardas[dvidešimt];
anglispaštą[225];
anglisadresu[penkiasdešimt];
tarptamžiaus;
bulas registruotas;
}u;
tarptpagrindinis(tarptargc, anglis konst *argv[])
{
u vartotojas 1= {'myusername', '[apsaugotas el. paštas]', 35, tiesa}

// rodyklė į kitą struktūrą
u*user_ptr= &vartotojas1
user_ptr->Vartotojo vardas= „ptrusername“
grįžti 0;
}

Išvada

Šiame vadove aprašomi darbo su struktūromis C programavimo kalba pagrindai.

Ačiū, kad skaitėte!