Tegyük fel, hogy információkat akarunk tárolni a felhasználókról, akik egy adott szolgáltatást használnak. Ilyen információ lehet a felhasználónév, e -mail, cím, szolgáltatási mód stb. Az ilyen információk tárolásához létrehozhatjuk az egyes attribútumokat önálló változóként. Ha azonban tíz plusz felhasználónk van, akkor a kód elfordulhat az irányítástól, és nagyon nehéz és fárasztó lesz az olvasása.
Ennek megoldásához létrehozhatunk egy struktúrát. A struktúrán belül tárolhatjuk az összes felhasználó által megosztott összes attribútumot, majd egyedi változókat adhatunk hozzá minden felhasználóhoz.
Nézzünk meg néhány példát, hogy megtudjuk, hogyan kell ezt megvalósítani.
Hogyan definiálhatunk struktúrát C -ben
A C struktúra meghatározásához a szerkezet kulcsszót használjuk, amelyet a szerkezet neve követ. A név után van egy pár göndör zárójele, ahol hozzáadjuk a tagokat.
Tekintsük az alábbi szintaxist:
strukstruktúra_neve{
/ * adatok */
írja be a tag_nevet;
írja be a tag_nevet2;
írja be a tag_nevet3;
...
típustag_neveN;
};
A szerkezet neve bármi lehet, amit csak akar, amennyiben betartja a C programozási nyelv elnevezési konvencióját.
A felhasználói analógia példaszerkezetét a következőképpen valósíthatjuk meg:
strukfelhasználók{
charfelhasználónév[húsz];
charemail[225];
charcím[ötven];
intkor;
bool regisztrált;
};
Strukturális változók létrehozása
A strukturális változók létrehozásának két fő módja van. Az első, hogy normál változóként deklarálja őket, a másik pedig göndör zárójelek használatával.
Az alábbi példa bemutatja, hogyan kell a strukturális változókat standard C változóként deklarálni.
strukfelhasználók{
charfelhasználónév[húsz];
charemail[225];
charcím[ötven];
intkor;
bool regisztrált;
};
intfő-(intargc, char const *argv[])
{
strukfelhasználók user1,felhasználó2,felhasználó3
Visszatérés 0;
}
A strukturális változók létrehozásának másik módja az alábbi:
strukfelhasználók{
charfelhasználónév[húsz];
charemail[225];
charcím[ötven];
intkor;
bool regisztrált;
}felhasználó1,felhasználó2,felhasználó3;
Ebben a példában a struktúra deklarálása során hozzuk létre őket.
Struktúra Tag Init
A szerkezeti tagokat nem lehet inicializálni a létrehozás során, mivel nincs memória a típushoz.
A szerkezet elemeinek inicializálásához használja az alábbi ábrán látható göndör zárójelet:
strukfelhasználók{
charfelhasználónév[húsz];
charemail[225];
charcím[ötven];
intkor;
bool regisztrált;
};
intfő-(intargc, char const *argv[])
{
strukfelhasználók user1= {'myusername', '[email protected]', 35, igaz}
Visszatérés 0;
}
Hozzáférési struktúra tagjai
Egy struktúra tagjainak eléréséhez a pont operátort használjuk, kezdve a szerkezet nevével, egy ponttal és a tag nevével.
strukfelhasználók{
charfelhasználónév[húsz];
charemail[225];
charcím[ötven];
intkor;
bool regisztrált;
};
intfő-(intargc, char const *argv[])
{
strukfelhasználók user1= {'myusername', '[email protected]', 35, igaz}
felhasználó1.email = '[email protected]'
Visszatérés 0;
}
Ebben a példában a user1 tagjaihoz férünk hozzá.
Typedef kulcsszó
A typedef kulcsszó segítségével álnevet hozunk létre az adattípusokhoz, így a kód jobban olvasható.
Például:
typedef strukfelhasználók{
charfelhasználónév[húsz];
charemail[225];
charcím[ötven];
intkor;
bool regisztrált;
}u;
intfő-(intargc, char const *argv[])
{
u felhasználó1= {'myusername', '[email protected]', 35, igaz}
felhasználó1.bejegyzett = hamis
Visszatérés 0;
}
A fenti példában egy felhasználói álnevet hoztunk létre a felhasználói struktúrához. Ezért nem kell minden alkalommal strukturális felhasználókat hívnunk. A fentiek szerint használhatjuk az u -t.
Szerkezeti mutatók
A struktúrára is mutathat mutatót. Ezzel lehetővé teszi a tagok elérését a -> operátor segítségével.
Például:
typedef strukfelhasználók{
charfelhasználónév[húsz];
charemail[225];
charcím[ötven];
intkor;
bool regisztrált;
}u;
intfő-(intargc, char const *argv[])
{
u felhasználó1= {'myusername', '[email protected]', 35, igaz}
// mutató egy másik szerkezetre
u*user_ptr= &felhasználó1
user_ptr->felhasználónév= 'ptrusername'
Visszatérés 0;
}
Következtetés
Ez az útmutató a C programozási nyelvű struktúrákkal való munka alapjait ismerteti.
Köszönöm, hogy elolvasta!