Les estructures en C són una manera poderosa i flexible d'organitzar dades relacionades sota un mateix nom. A diferència dels arrays, que només poden contenir elements del mateix tipus, les estructures permeten agrupar elements de diferents tipus. Això és especialment útil per representar entitats del món real, com ara una persona, un llibre, o un punt en un espai 2D.
Conceptes Clau
Definició d'Estructures
Una estructura es defineix utilitzant la paraula clau struct
, seguida del nom de l'estructura i un conjunt de membres entre claus.
Declaració de Variables d'Estructura
Després de definir una estructura, podem declarar variables d'aquest tipus.
Inicialització de Variables d'Estructura
Podem inicialitzar una variable d'estructura en el moment de la seva declaració.
Accés als Membres de l'Estructura
Per accedir als membres d'una estructura, utilitzem l'operador de punt (.
).
printf("Nom: %s\n", persona1.nom); printf("Edat: %d\n", persona1.edat); printf("Alçada: %.2f\n", persona1.alçada);
Exemples Pràctics
Exemple 1: Definició i Ús d'una Estructura
#include <stdio.h> // Definició de l'estructura struct Punt { int x; int y; }; int main() { // Declaració i inicialització d'una variable d'estructura struct Punt p1 = {10, 20}; // Accés als membres de l'estructura printf("Punt p1: (%d, %d)\n", p1.x, p1.y); return 0; }
Exemple 2: Estructura amb Membres de Diferents Tipus
#include <stdio.h> // Definició de l'estructura struct Llibre { char titol[100]; char autor[50]; int any; float preu; }; int main() { // Declaració i inicialització d'una variable d'estructura struct Llibre llibre1 = {"El Quixot", "Miguel de Cervantes", 1605, 19.99}; // Accés als membres de l'estructura printf("Títol: %s\n", llibre1.titol); printf("Autor: %s\n", llibre1.autor); printf("Any: %d\n", llibre1.any); printf("Preu: %.2f\n", llibre1.preu); return 0; }
Exercicis Pràctics
Exercici 1: Definició i Ús d'una Estructura
Descripció: Defineix una estructura anomenada Cotxe
amb els membres marca
(cadena de caràcters), model
(cadena de caràcters) i any
(enter). Declara una variable d'aquesta estructura, inicialitza-la i imprimeix els seus valors.
Solució:
#include <stdio.h> // Definició de l'estructura struct Cotxe { char marca[50]; char model[50]; int any; }; int main() { // Declaració i inicialització d'una variable d'estructura struct Cotxe cotxe1 = {"Toyota", "Corolla", 2020}; // Accés als membres de l'estructura printf("Marca: %s\n", cotxe1.marca); printf("Model: %s\n", cotxe1.model); printf("Any: %d\n", cotxe1.any); return 0; }
Exercici 2: Estructura amb Membres de Diferents Tipus
Descripció: Defineix una estructura anomenada Estudiant
amb els membres nom
(cadena de caràcters), edat
(enter) i nota
(flotant). Declara una variable d'aquesta estructura, inicialitza-la i imprimeix els seus valors.
Solució:
#include <stdio.h> // Definició de l'estructura struct Estudiant { char nom[50]; int edat; float nota; }; int main() { // Declaració i inicialització d'una variable d'estructura struct Estudiant estudiant1 = {"Anna", 21, 8.5}; // Accés als membres de l'estructura printf("Nom: %s\n", estudiant1.nom); printf("Edat: %d\n", estudiant1.edat); printf("Nota: %.2f\n", estudiant1.nota); return 0; }
Errors Comuns i Consells
Errors Comuns
- Oblidar inicialitzar els membres de l'estructura: Assegura't d'inicialitzar tots els membres de l'estructura per evitar valors indeterminats.
- Accés incorrecte als membres: Utilitza l'operador de punt (
.
) per accedir als membres de l'estructura.
Consells
- Utilitza noms descriptius: Dona noms clars i descriptius als membres de les teves estructures per millorar la llegibilitat del codi.
- Agrupa dades relacionades: Utilitza estructures per agrupar dades que estan relacionades lògicament, facilitant així la gestió i l'accés a aquestes dades.
Conclusió
Les estructures són una eina fonamental en C per organitzar i gestionar dades complexes. Permeten agrupar diferents tipus de dades sota un mateix nom, facilitant la representació d'entitats del món real. Amb la pràctica, aprendràs a utilitzar-les de manera efectiva per escriure codi més clar i organitzat.
En el següent tema, explorarem les estructures imbricades, que permeten definir estructures dins d'altres estructures, ampliant encara més les possibilitats d'organització de dades.
Curs de Programació en C
Mòdul 1: Introducció al C
- Introducció a la Programació
- Configuració de l'Entorn de Desenvolupament
- Programa Hello World
- Sintaxi i Estructura Bàsiques
Mòdul 2: Tipus de Dades i Variables
Mòdul 3: Flux de Control
Mòdul 4: Funcions
- Introducció a les Funcions
- Arguments de Funció i Valors de Retorn
- Àmbit i Durada de les Variables
- Funcions Recursives
Mòdul 5: Arrays i Strings
Mòdul 6: Punteres
Mòdul 7: Estructures i Unions
Mòdul 8: Assignació Dinàmica de Memòria
Mòdul 9: Gestió d'Arxius
- Introducció a la Gestió d'Arxius
- Lectura i Escriptura d'Arxius
- Posicionament d'Arxius
- Gestió d'Errors en Operacions d'Arxius
Mòdul 10: Temes Avançats
- Directives del Preprocessador
- Arguments de Línia de Comandes
- Llistes d'Arguments Variables
- Multifil en C
Mòdul 11: Millors Pràctiques i Optimització
- Llegibilitat del Codi i Documentació
- Tècniques de Depuració
- Optimització del Rendiment
- Consideracions de Seguretat