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.

struct Persona {
    char nom[50];
    int edat;
    float alçada;
};

Declaració de Variables d'Estructura

Després de definir una estructura, podem declarar variables d'aquest tipus.

struct Persona persona1;

Inicialització de Variables d'Estructura

Podem inicialitzar una variable d'estructura en el moment de la seva declaració.

struct Persona persona1 = {"Joan", 30, 1.75};

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

  1. Oblidar inicialitzar els membres de l'estructura: Assegura't d'inicialitzar tots els membres de l'estructura per evitar valors indeterminats.
  2. 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

Mòdul 2: Tipus de Dades i Variables

Mòdul 3: Flux de Control

Mòdul 4: Funcions

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

Mòdul 10: Temes Avançats

Mòdul 11: Millors Pràctiques i Optimització

Mòdul 12: Projecte i Avaluació Final

© Copyright 2024. Tots els drets reservats