Estructures en C.

Structures C



A C, una estructura és una variable definida per l'usuari que s'utilitza per emmagatzemar una col·lecció de variables sota una sola entitat. Utilitzem una simple analogia per explicar la implementació i utilitat de les estructures en C.

Suposem que volem emmagatzemar informació sobre usuaris que fan servir un servei específic. Aquesta informació pot incloure el nom d'usuari, el correu electrònic, l'adreça, el mode de servei, etc. Per emmagatzemar aquesta informació, podem procedir a la creació de cada atribut com a variable autònoma. No obstant això, quan tenim deu usuaris més, el codi pot sortir de control i esdevenir molt difícil i cansat de llegir.







Per solucionar-ho, podem crear una estructura. Dins de l’estructura, podem emmagatzemar tots els atributs compartits per tots els usuaris i després afegir variables úniques per a cada usuari.



Vegem diversos exemples per veure com implementar-ho.



Com es defineix una estructura en C.

Per definir una estructura en C, fem servir la paraula clau struct seguida del nom de l’estructura. Després del nom, tenim un parell de claus on afegim els membres.





Penseu en la sintaxi següent:

estructnom_estructura
{
/ * dades * /
escriviu nom_membre;
escriviu nom_membre2;
escriviu nom_membre3;

...
tipusnom_membreN;
};

El nom de l'estructura pot ser qualsevol que vulgueu, sempre que s'adhereixi a la convenció de noms del llenguatge de programació C.



Podem implementar una estructura d’exemple de l’analogia de l’usuari com:

estructusuaris
{
charnom d'usuari[20];
charcorreu electrònic[225];
charadreça[50];
intedat;
bool registrat;
};

Com crear variables d’estructura

Hi ha dues maneres principals de crear variables d’estructura. La primera és declarar-les com a variables normals i l’altra és configurar-les mitjançant claus.

L'exemple següent mostra com declarar les variables d'estructura com a variables C estàndard.

estructusuaris
{
charnom d'usuari[20];
charcorreu electrònic[225];
charadreça[50];
intedat;
bool registrat;
};

intprincipal(intargc, char const *argv[])
{
estructusuaris user1,usuari2,usuari3
tornar 0;
}

L’altre mètode de creació de variables d’estructura és el que es mostra a continuació:

estructusuaris
{
charnom d'usuari[20];
charcorreu electrònic[225];
charadreça[50];
intedat;
bool registrat;
}usuari1,usuari2,usuari3;

En aquest exemple, els creem durant la declaració d’estructures.

Estructura Membre Inic

No podeu inicialitzar els membres de l'estructura durant la creació, ja que no hi ha memòria assignada per al tipus.

Per inicialitzar els membres d'una estructura, utilitzeu els claus com es mostra a continuació:

estructusuaris
{
charnom d'usuari[20];
charcorreu electrònic[225];
charadreça[50];
intedat;
bool registrat;
};
intprincipal(intargc, char const *argv[])
{
estructusuaris user1= {'el meu nom d'usuari', '[email protected]', 35, cert}
tornar 0;
}

Membres de l'estructura d'accés

Per accedir als membres d’una estructura, fem servir l’operador de punts, començant pel nom de l’estructura, un punt i el nom del membre.

estructusuaris
{
charnom d'usuari[20];
charcorreu electrònic[225];
charadreça[50];
intedat;
bool registrat;
};
intprincipal(intargc, char const *argv[])
{
estructusuaris user1= {'el meu nom d'usuari', '[email protected]', 35, cert}
usuari1.correu electrònic = '[email protected]'
tornar 0;
}

En aquest exemple, accedim als membres de user1.

Paraula clau Typedef

Utilitzem la paraula clau typedef per crear un àlies per als tipus de dades, cosa que fa que el codi sigui més llegible.

Per exemple:

typedef estructusuaris
{
charnom d'usuari[20];
charcorreu electrònic[225];
charadreça[50];
intedat;
bool registrat;
}tu;
intprincipal(intargc, char const *argv[])
{
u usuari1= {'el meu nom d'usuari', '[email protected]', 35, cert}
usuari1.enregistrat = fals
tornar 0;
}

A l'exemple anterior, vam crear un àlies u per a l'estructura dels usuaris. Per tant, no necessitem trucar a usuaris struct cada vegada. Podem utilitzar u tal com s’ha definit anteriorment.

Punters d’estructura

També podeu tenir un punter cap a una estructura. Fent això, podeu accedir als membres mitjançant l’operador ->.

Per exemple:

typedef estructusuaris
{
charnom d'usuari[20];
charcorreu electrònic[225];
charadreça[50];
intedat;
bool registrat;
}tu;
intprincipal(intargc, char const *argv[])
{
u usuari1= {'el meu nom d'usuari', '[email protected]', 35, cert}

// punter a una altra estructura
tu*user_ptr= &usuari1
user_ptr->nom d'usuari= 'ptrusername'
tornar 0;
}

Conclusió

Aquesta guia tracta els conceptes bàsics del treball amb estructures en el llenguatge de programació C.

Gràcies per llegir!