Strukturer i C

Structures C



I C er en struktur en brugerdefineret variabel, der bruges til at gemme en samling af variabler under en enkelt enhed. Lad os bruge en simpel analogi til at forklare strukturernes implementering og nytteværdi i C.

Antag, at vi vil gemme oplysninger om brugere, der bruger en bestemt tjeneste. Sådanne oplysninger kan omfatte brugernavn, e -mail, adresse, servicetilstand og sådan. For at gemme sådanne oplysninger kan vi gå i gang med at oprette hver attribut som en selvstændig variabel. Men når vi har ti plus -brugere, kan koden gå ud af kontrol og blive meget vanskelig og kedelig at læse.







For at løse dette kan vi oprette en struktur. Inde i strukturen kan vi gemme alle attributter, der deles af alle brugerne, og derefter tilføje unikke variabler for hver bruger.



Lad os se på forskellige eksempler for at se, hvordan man implementerer dette.



Sådan defineres en struktur i C

For at definere en struktur i C bruger vi strukt -søgeordet efterfulgt af strukturens navn. Efter navnet har vi et par krøllede seler, hvor vi tilføjer medlemmerne.





Overvej syntaksen herunder:

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

...
typemedlemsnavnN;
};

Strukturens navn kan være hvad du vil, så længe det overholder navngivningskonventionen for C -programmeringssproget.



Vi kan implementere en eksempelstruktur af brugeranalogien som:

strukturbrugere
{
forkælelsebrugernavn[tyve];
forkælelsee -mail[225];
forkælelseadresse[halvtreds];
intalder;
bool registreret;
};

Sådan opretter du strukturvariabler

Der er to hovedmåder til at oprette strukturvariabler. Den første er at erklære dem som normale variabler, og den anden er at indstille dem ved hjælp af krøllede seler.

Nedenstående eksempel viser, hvordan man erklærer strukturvariabler som standard C -variabler.

strukturbrugere
{
forkælelsebrugernavn[tyve];
forkælelsee -mail[225];
forkælelseadresse[halvtreds];
intalder;
bool registreret;
};

intvigtigste(intargc, forkælelse konst *argv[])
{
strukturbrugere bruger 1,bruger2,bruger3
Vend tilbage 0;
}

Den anden metode til at oprette strukturvariabler er som vist nedenfor:

strukturbrugere
{
forkælelsebrugernavn[tyve];
forkælelsee -mail[225];
forkælelseadresse[halvtreds];
intalder;
bool registreret;
}bruger 1,bruger2,bruger3;

I dette eksempel opretter vi dem under strukturerklæring.

Strukturmedlem Init

Du kan ikke initialisere strukturmedlemmerne under oprettelsen, da der ikke er tildelt hukommelse til typen.

For at initialisere medlemmerne af en struktur bruger du de krøllede seler som vist herunder:

strukturbrugere
{
forkælelsebrugernavn[tyve];
forkælelsee -mail[225];
forkælelseadresse[halvtreds];
intalder;
bool registreret;
};
intvigtigste(intargc, forkælelse konst *argv[])
{
strukturbrugere bruger 1= {'mit brugernavn', '[e -mail beskyttet]', 35, sand}
Vend tilbage 0;
}

Adgangsstrukturmedlemmer

For at få adgang til medlemmerne af en struktur bruger vi punktoperatoren, der starter med strukturens navn, en prik og navnet på medlemmet.

strukturbrugere
{
forkælelsebrugernavn[tyve];
forkælelsee -mail[225];
forkælelseadresse[halvtreds];
intalder;
bool registreret;
};
intvigtigste(intargc, forkælelse konst *argv[])
{
strukturbrugere bruger 1= {'mit brugernavn', '[e -mail beskyttet]', 35, sand}
bruger 1.e -mail = '[e -mail beskyttet]'
Vend tilbage 0;
}

I dette eksempel får vi adgang til medlemmerne af user1.

Typedef søgeord

Vi bruger typedef -søgeordet til at oprette et alias for datatyperne, hvilket gør koden mere læsbar.

For eksempel:

typedef strukturbrugere
{
forkælelsebrugernavn[tyve];
forkælelsee -mail[225];
forkælelseadresse[halvtreds];
intalder;
bool registreret;
}u;
intvigtigste(intargc, forkælelse konst *argv[])
{
u bruger1= {'mit brugernavn', '[e -mail beskyttet]', 35, sand}
bruger 1.registreret = falsk
Vend tilbage 0;
}

I eksemplet ovenfor oprettede vi et alias u til brugerstrukturen. Derfor behøver vi ikke ringe til struct -brugere hver gang. Vi kan bruge u som defineret ovenfor.

Strukturpeger

Du kan også have en markør til en struktur. Hvis du gør dette, får du adgang til medlemmerne ved hjælp af operatoren ->.

For eksempel:

typedef strukturbrugere
{
forkælelsebrugernavn[tyve];
forkælelsee -mail[225];
forkælelseadresse[halvtreds];
intalder;
bool registreret;
}u;
intvigtigste(intargc, forkælelse konst *argv[])
{
u bruger1= {'mit brugernavn', '[e -mail beskyttet]', 35, sand}

// markør til en anden struktur
u*bruger_ptr= &bruger 1
bruger_ptr->brugernavn= 'ptrusername'
Vend tilbage 0;
}

Konklusion

Denne vejledning dækker det grundlæggende i arbejdet med strukturer i programmeringssproget C.

Tak fordi du læste!