Structuren in C

Structures C



In C is een structuur een door de gebruiker gedefinieerde variabele die wordt gebruikt om een ​​verzameling variabelen onder een enkele entiteit op te slaan. Laten we een eenvoudige analogie gebruiken om de implementatie en het nut van structuren in C uit te leggen.

Stel dat we informatie willen opslaan over gebruikers die een specifieke dienst gebruiken. Dergelijke informatie kan de gebruikersnaam, het e-mailadres, het adres, de servicemodus en dergelijke bevatten. Om dergelijke informatie op te slaan, kunnen we elk attribuut als een op zichzelf staande variabele maken. Wanneer we echter meer dan tien gebruikers hebben, kan de code uit de hand lopen en erg moeilijk en vermoeiend worden om te lezen.







Om dit op te lossen, kunnen we een structuur maken. Binnen de structuur kunnen we alle attributen opslaan die door alle gebruikers worden gedeeld en vervolgens unieke variabelen voor elke gebruiker toevoegen.



Laten we eens kijken naar verschillende voorbeelden om te zien hoe dit te implementeren.



Hoe een structuur in C . te definiëren

Om een ​​structuur in C te definiëren, gebruiken we het sleutelwoord struct gevolgd door de naam van de structuur. Na de naam hebben we een paar accolades waar we de leden aan toevoegen.





Overweeg de onderstaande syntaxis:

structurerenstruct_name
{
/* gegevens */
typ naam_lid;
typ naamnaam2;
typ naam_lid3;

...
typemember_nameN;
};

De naam van de structuur kan alles zijn wat u maar wilt, zolang deze zich houdt aan de naamgevingsconventie van de programmeertaal C.



We kunnen een voorbeeldstructuur van de gebruikersanalogie implementeren als:

structurerengebruikers
{
chargebruikersnaam[twintig];
chare-mail[225];
charadres[vijftig];
intleeftijd;
bool geregistreerd;
};

Structuurvariabelen maken

Er zijn twee manieren om structuurvariabelen te maken. De eerste is om ze als normale variabelen te declareren, en de andere is om ze in te stellen met accolades.

Het onderstaande voorbeeld laat zien hoe u structuurvariabelen declareert als standaard C-variabelen.

structurerengebruikers
{
chargebruikersnaam[twintig];
chare-mail[225];
charadres[vijftig];
intleeftijd;
bool geregistreerd;
};

inthoofd(intargc, char const *argv[])
{
structurerengebruikers gebruiker1,gebruiker2,gebruiker3
opbrengst 0;
}

De andere methode voor het maken van structuurvariabelen is zoals hieronder weergegeven:

structurerengebruikers
{
chargebruikersnaam[twintig];
chare-mail[225];
charadres[vijftig];
intleeftijd;
bool geregistreerd;
}gebruiker1,gebruiker2,gebruiker3;

In dit voorbeeld maken we ze aan tijdens de structuurdeclaratie.

Structuurlid Init

U kunt de structuurelementen niet initialiseren tijdens het maken, omdat er geen geheugen is toegewezen aan het type.

Om de leden van een structuur te initialiseren, gebruikt u de accolades zoals hieronder weergegeven:

structurerengebruikers
{
chargebruikersnaam[twintig];
chare-mail[225];
charadres[vijftig];
intleeftijd;
bool geregistreerd;
};
inthoofd(intargc, char const *argv[])
{
structurerengebruikers gebruiker1= {'mijngebruikersnaam', ' [e-mail beveiligd]', 35, waar}
opbrengst 0;
}

Toegang tot structuurleden

Om toegang te krijgen tot de leden van een structuur, gebruiken we de puntoperator, beginnend met de structuurnaam, een punt en de naam van het lid.

structurerengebruikers
{
chargebruikersnaam[twintig];
chare-mail[225];
charadres[vijftig];
intleeftijd;
bool geregistreerd;
};
inthoofd(intargc, char const *argv[])
{
structurerengebruikers gebruiker1= {'mijngebruikersnaam', ' [e-mail beveiligd]', 35, waar}
gebruiker1.e-mail = ' [e-mail beveiligd]'
opbrengst 0;
}

In dit voorbeeld hebben we toegang tot de leden van gebruiker1.

Typedef Trefwoord

We gebruiken het sleutelwoord typedef om een ​​alias voor de gegevenstypen te maken, waardoor de code leesbaarder wordt.

Bijvoorbeeld:

typedef structurerengebruikers
{
chargebruikersnaam[twintig];
chare-mail[225];
charadres[vijftig];
intleeftijd;
bool geregistreerd;
}jij;
inthoofd(intargc, char const *argv[])
{
jij gebruiker1= {'mijngebruikersnaam', ' [e-mail beveiligd]', 35, waar}
gebruiker1.geregistreerd = vals
opbrengst 0;
}

In het bovenstaande voorbeeld hebben we een alias u gemaakt voor de gebruikersstructuur. Daarom hoeven we struct-gebruikers niet elke keer aan te roepen. We kunnen u gebruiken zoals hierboven gedefinieerd.

Structuurwijzers

U kunt ook een verwijzing naar een structuur hebben. Als u dit doet, krijgt u toegang tot de leden met behulp van de -> operator.

Bijvoorbeeld:

typedef structurerengebruikers
{
chargebruikersnaam[twintig];
chare-mail[225];
charadres[vijftig];
intleeftijd;
bool geregistreerd;
}jij;
inthoofd(intargc, char const *argv[])
{
jij gebruiker1= {'mijngebruikersnaam', ' [e-mail beveiligd]', 35, waar}

// aanwijzer naar een andere structuur
jij*user_ptr= &gebruiker1
user_ptr->gebruikersnaam= 'ptrusernaam'
opbrengst 0;
}

Conclusie

Deze gids behandelt de basisprincipes van het werken met structuren in de programmeertaal C.

Bedankt voor het lezen!