Struktuurid C -s

Structures C

C-s on struktuur kasutaja määratud muutuja, mida kasutatakse muutujate kogumi salvestamiseks ühe olemi alla. Kasutame lihtsat analoogiat, et selgitada struktuuride rakendamist ja kasulikkust C -s.

Oletame, et soovime salvestada teavet konkreetset teenust kasutavate kasutajate kohta. Selline teave võib sisaldada kasutajanime, e -posti aadressi, teenindusrežiimi jms. Sellise teabe salvestamiseks võime luua iga atribuudi eraldiseisva muutujana. Kui meil on aga kümme pluss kasutajat, võib kood kontrolli alt väljuda ja seda on väga raske ja väsitav lugeda.



Selle lahendamiseks saame luua struktuuri. Struktuuri sees saame salvestada kõik kõigi kasutajate jagatud atribuudid ja seejärel lisada iga kasutaja jaoks ainulaadsed muutujad.



Vaatame erinevaid näiteid, et näha, kuidas seda rakendada.



Kuidas määratleda struktuuri C -s

Struktuuri määratlemiseks C -s kasutame struktuuri märksõna, millele järgneb struktuuri nimi. Pärast nime on meil paar lokkis breketit, kuhu lisame liikmed.

Mõelge allpool olevale süntaksile:

struktuuristruktuuri_nimi
{
/ * andmed */
tippige liikme_nimi;
tippige liige_nimi2;
tippige liige_nimi3;

...
tüüpiliige_nimiN;
};

Struktuuri nimi võib olla kõik, mida soovite, kui see järgib C -programmeerimiskeele nimetamiskokkulepet.



Saame rakendada kasutaja analoogia näidisstruktuuri järgmiselt:

struktuurikasutajatele
{
süsikasutajanimi[kakskümmend];
süsimeilile[225];
süsiaadress[viiskümmend];
intvanus;
bool registreeritud;
};

Struktuurimuutujate loomine

Struktuurimuutujate loomiseks on kaks peamist viisi. Esimene neist on deklareerida nagu tavalised muutujad ja teine ​​on määrata need lokkis trakside abil.

Allolev näide näitab, kuidas struktuurimuutujad deklareerida C -standardmuutujateks.

struktuurikasutajatele
{
süsikasutajanimi[kakskümmend];
süsimeilile[225];
süsiaadress[viiskümmend];
intvanus;
bool registreeritud;
};

intpeamine(intargc, süsi const *argv[])
{
struktuurikasutajad kasutaja 1,kasutaja2,kasutaja3
tagasi 0;
}

Teine struktuurimuutujate loomise meetod on järgmine:

struktuurikasutajatele
{
süsikasutajanimi[kakskümmend];
süsimeilile[225];
süsiaadress[viiskümmend];
intvanus;
bool registreeritud;
}kasutaja 1,kasutaja2,kasutaja3;

Selles näites loome need struktuuri deklareerimise ajal.

Struktuuri liige Init

Te ei saa loomise ajal struktuuri liikmeid initsialiseerida, kuna selle tüübi jaoks pole mälu eraldatud.

Konstruktsiooni liikmete lähtestamiseks kasutage lokkis trakse, nagu allpool näidatud.

struktuurikasutajatele
{
süsikasutajanimi[kakskümmend];
süsimeilile[225];
süsiaadress[viiskümmend];
intvanus;
bool registreeritud;
};
intpeamine(intargc, süsi const *argv[])
{
struktuurikasutajad kasutaja 1= {'myusername', '[email protected]', 35, tõsi}
tagasi 0;
}

Juurdepääsu struktuuri liikmed

Struktuuri liikmetele juurdepääsuks kasutame punktioperaatorit, alustades struktuuri nimest, punktist ja liikme nimest.

struktuurikasutajatele
{
süsikasutajanimi[kakskümmend];
süsimeilile[225];
süsiaadress[viiskümmend];
intvanus;
bool registreeritud;
};
intpeamine(intargc, süsi const *argv[])
{
struktuurikasutajad kasutaja 1= {'myusername', '[email protected]', 35, tõsi}
kasutaja 1.meilile = '[email protected]'
tagasi 0;
}

Selles näites pääseme juurde kasutaja1 liikmetele.

Typedef Märksõna

Kasutame märksõna typedef, et luua andmetüüpidele varjunimi, muutes koodi loetavamaks.

Näiteks:

typedef struktuurikasutajatele
{
süsikasutajanimi[kakskümmend];
süsimeilile[225];
süsiaadress[viiskümmend];
intvanus;
bool registreeritud;
}u;
intpeamine(intargc, süsi const *argv[])
{
u kasutaja 1= {'myusername', '[email protected]', 35, tõsi}
kasutaja 1.registreeritud = vale
tagasi 0;
}

Ülaltoodud näites lõime kasutajate struktuuri jaoks aliase u. Seetõttu ei pea me struktuuri kasutajatele iga kord helistama. Saame kasutada u, nagu eespool määratletud.

Struktuuri näpunäited

Teil võib olla ka kursor struktuurile. See võimaldab teil liikmetele juurde pääseda operaatori -> abil.

Näiteks:

typedef struktuurikasutajatele
{
süsikasutajanimi[kakskümmend];
süsimeilile[225];
süsiaadress[viiskümmend];
intvanus;
bool registreeritud;
}u;
intpeamine(intargc, süsi const *argv[])
{
u kasutaja 1= {'myusername', '[email protected]', 35, tõsi}

// osuti teisele struktuurile
u*user_ptr= &kasutaja 1
user_ptr->kasutajanimi= 'ptrusername'
tagasi 0;
}

Järeldus

See juhend hõlmab C -programmeerimiskeele struktuuridega töötamise põhitõdesid.

Täname lugemise eest!