Strukturer i C

Structures C



I C är en struktur en användardefinierad variabel som används för att lagra en samling variabler under en enda enhet. Låt oss använda en enkel analogi för att förklara strukturer implementering och användbarhet i C.

Antag att vi vill lagra information om användare som använder en specifik tjänst. Sådan information kan inkludera användarnamn, e -postadress, adress, serviceläge och sådant. För att lagra sådan information kan vi skapa varje attribut som en fristående variabel. Men när vi har tio plusanvändare kan koden gå ur kontroll och bli mycket svår och tröttsam att läsa.







För att lösa detta kan vi skapa en struktur. Inne i strukturen kan vi lagra alla attribut som delas av alla användare och sedan lägga till unika variabler för varje användare.



Låt oss ta en titt på olika exempel för att se hur man genomför detta.



Hur man definierar en struktur i C

För att definiera en struktur i C använder vi struktursökordet följt av strukturens namn. Efter namnet har vi ett par lockiga hängslen där vi lägger till medlemmarna.





Tänk på syntaxen nedan:

strukturstruct_name
{
/ * data */
skriv medlemsnamn;
skriv member_name2;
skriv member_name3;

...
typmedlemsnamnN;
};

Strukturens namn kan vara vad du vill så länge det följer namngivningskonventionen för C -programmeringsspråket.



Vi kan implementera en exempelstruktur för användaranalogin som:

strukturanvändare
{
rödingAnvändarnamn[tjugo];
rödinge-post[225];
rödingadress[femtio];
intålder;
bool registrerat;
};

Hur man skapar strukturvariabler

Det finns två huvudsakliga sätt att skapa strukturvariabler. Den första är att deklarera dem som normala variabler, och den andra är att ställa in dem med lockiga hängslen.

Exemplet nedan visar hur man deklarerar strukturvariabler som standard C -variabler.

strukturanvändare
{
rödingAnvändarnamn[tjugo];
rödinge-post[225];
rödingadress[femtio];
intålder;
bool registrerat;
};

inthuvud(intargc, röding konst *argv[])
{
strukturanvändare user1,användare2,användare3
lämna tillbaka 0;
}

Den andra metoden för att skapa strukturvariabler är enligt nedan:

strukturanvändare
{
rödingAnvändarnamn[tjugo];
rödinge-post[225];
rödingadress[femtio];
intålder;
bool registrerat;
}användare1,användare2,användare3;

I det här exemplet skapar vi dem under strukturdeklaration.

Strukturmedlem Init

Du kan inte initiera strukturmedlemmarna under skapandet eftersom det inte finns något minne tilldelat för typen.

För att initialisera medlemmarna i en struktur använder du de lockiga hängslen enligt nedan:

strukturanvändare
{
rödingAnvändarnamn[tjugo];
rödinge-post[225];
rödingadress[femtio];
intålder;
bool registrerat;
};
inthuvud(intargc, röding konst *argv[])
{
strukturanvändare user1= {'mitt användarnamn', '[e -postskyddad]', 35, Sann}
lämna tillbaka 0;
}

Medlemmar för åtkomststruktur

För att komma åt medlemmarna i en struktur använder vi punktoperatören, som börjar med strukturnamnet, en prick och namnet på medlemmen.

strukturanvändare
{
rödingAnvändarnamn[tjugo];
rödinge-post[225];
rödingadress[femtio];
intålder;
bool registrerat;
};
inthuvud(intargc, röding konst *argv[])
{
strukturanvändare user1= {'mitt användarnamn', '[e -postskyddad]', 35, Sann}
användare1.e-post = '[e -postskyddad]'
lämna tillbaka 0;
}

I det här exemplet får vi tillgång till medlemmarna i user1.

Typedef Nyckelord

Vi använder typedef -nyckelordet för att skapa ett alias för datatyperna, vilket gör koden mer läsbar.

Till exempel:

typedef strukturanvändare
{
rödingAnvändarnamn[tjugo];
rödinge-post[225];
rödingadress[femtio];
intålder;
bool registrerat;
}u;
inthuvud(intargc, röding konst *argv[])
{
u användare1= {'mitt användarnamn', '[e -postskyddad]', 35, Sann}
användare1.registrerad = falsk
lämna tillbaka 0;
}

I exemplet ovan skapade vi ett alias u för användarstrukturen. Därför behöver vi inte ringa struct -användare varje gång. Vi kan använda u enligt ovan.

Strukturpekare

Du kan också ha en pekare till en struktur. Genom att göra detta kan du komma åt medlemmarna med hjälp av operatören ->.

Till exempel:

typedef strukturanvändare
{
rödingAnvändarnamn[tjugo];
rödinge-post[225];
rödingadress[femtio];
intålder;
bool registrerat;
}u;
inthuvud(intargc, röding konst *argv[])
{
u användare1= {'mitt användarnamn', '[e -postskyddad]', 35, Sann}

// pekare till en annan struktur
u*user_ptr= &användare1
user_ptr->Användarnamn= 'ptrusername'
lämna tillbaka 0;
}

Slutsats

Denna guide täcker grunderna för att arbeta med strukturer i programmeringsspråket C.

Tack för att du läste!