Strukturer i C

Structures C



I C er en struktur en brukerdefinert variabel som brukes til å lagre en samling variabler under en enkelt enhet. La oss bruke en enkel analogi til å forklare implementering og nytte av strukturer i C.

Anta at vi vil lagre informasjon om brukere som bruker en bestemt tjeneste. Slik informasjon kan inkludere brukernavn, e -post, adresse, servicemodus og slikt. For å lagre slik informasjon kan vi gå om å lage hvert attributt som en frittstående variabel. Men når vi har ti plussbrukere, kan koden gå ut av kontroll og bli veldig vanskelig og slitsom å lese.







For å løse dette kan vi lage en struktur. Inne i strukturen kan vi lagre alle attributtene som deles av alle brukerne og deretter legge til unike variabler for hver bruker.



La oss ta en titt på forskjellige eksempler for å se hvordan du implementerer dette.



Hvordan definere en struktur i C

For å definere en struktur i C, bruker vi strukt -søkeordet etterfulgt av strukturens navn. Etter navnet har vi et par krøllete seler der vi legger til medlemmene.





Vurder syntaksen nedenfor:

strukturstruct_name
{
/ * data */
skriv medlemsnavn;
skriv medlemsnavn2;
skriv medlemsnavn3;

...
typemedlemsnavnN;
};

Strukturens navn kan være hva du vil så lenge den overholder navnekonvensjonen til programmeringsspråket C.



Vi kan implementere en eksempelstruktur for brukeranalogien som:

strukturbrukere
{
røyebrukernavn[tjue];
røyee -post[225];
røyeadresse[femti];
intalder;
bool registrert;
};

Hvordan lage strukturvariabler

Det er to hovedmåter for å lage strukturvariabler. Den første er å erklære dem som normale variabler, og den andre er å sette dem ved hjelp av krøllete seler.

Eksemplet nedenfor viser hvordan man deklarerer strukturvariabler som standard C -variabler.

strukturbrukere
{
røyebrukernavn[tjue];
røyee -post[225];
røyeadresse[femti];
intalder;
bool registrert;
};

inthoved-(intargc, røye konst *argv[])
{
strukturbrukere bruker1,bruker2,bruker3
komme tilbake 0;
}

Den andre metoden for å lage strukturvariabler er som vist nedenfor:

strukturbrukere
{
røyebrukernavn[tjue];
røyee -post[225];
røyeadresse[femti];
intalder;
bool registrert;
}bruker1,bruker2,bruker3;

I dette eksemplet oppretter vi dem under strukturerklæring.

Strukturmedlem Init

Du kan ikke initialisere strukturmedlemmene under opprettelsen, siden det ikke er tildelt noe minne for typen.

For å initialisere medlemmene i en struktur, bruker du de krøllete selene som vist nedenfor:

strukturbrukere
{
røyebrukernavn[tjue];
røyee -post[225];
røyeadresse[femti];
intalder;
bool registrert;
};
inthoved-(intargc, røye konst *argv[])
{
strukturbrukere bruker1= {'mitt brukernavn', '[e -postbeskyttet]', 35, ekte}
komme tilbake 0;
}

Tilgangsstrukturmedlemmer

For å få tilgang til medlemmene i en struktur, bruker vi punktoperatoren, som begynner med strukturnavnet, en prikk og navnet på medlemmet.

strukturbrukere
{
røyebrukernavn[tjue];
røyee -post[225];
røyeadresse[femti];
intalder;
bool registrert;
};
inthoved-(intargc, røye konst *argv[])
{
strukturbrukere bruker1= {'mitt brukernavn', '[e -postbeskyttet]', 35, ekte}
bruker1.e -post = '[e -postbeskyttet]'
komme tilbake 0;
}

I dette eksemplet får vi tilgang til medlemmene av user1.

Typedef søkeord

Vi bruker typedef -søkeordet til å lage et alias for datatypene, noe som gjør koden mer lesbar.

For eksempel:

typedef strukturbrukere
{
røyebrukernavn[tjue];
røyee -post[225];
røyeadresse[femti];
intalder;
bool registrert;
}u;
inthoved-(intargc, røye konst *argv[])
{
u bruker1= {'mitt brukernavn', '[e -postbeskyttet]', 35, ekte}
bruker1.registrert = falsk
komme tilbake 0;
}

I eksemplet ovenfor opprettet vi et alias u for brukerstrukturen. Derfor trenger vi ikke ringe struct -brukere hver gang. Vi kan bruke u som definert ovenfor.

Strukturpekere

Du kan også ha en peker til en struktur. Hvis du gjør dette, får du tilgang til medlemmene ved hjelp av -> operatøren.

For eksempel:

typedef strukturbrukere
{
røyebrukernavn[tjue];
røyee -post[225];
røyeadresse[femti];
intalder;
bool registrert;
}u;
inthoved-(intargc, røye konst *argv[])
{
u bruker1= {'mitt brukernavn', '[e -postbeskyttet]', 35, ekte}

// peker til en annen struktur
u*user_ptr= &bruker1
user_ptr->brukernavn= 'ptrusername'
komme tilbake 0;
}

Konklusjon

Denne guiden dekker det grunnleggende om å jobbe med strukturer i programmeringsspråket C.

Takk for at du leser!