Las estructuras en C son una forma de agrupar diferentes tipos de datos bajo un mismo nombre. Esto es especialmente útil cuando se necesita manejar datos relacionados entre sí, como la información de un estudiante (nombre, edad, calificaciones, etc.). Las estructuras permiten organizar y manipular estos datos de manera más eficiente y legible.

Conceptos Clave

  1. Definición de Estructura: Una estructura es una colección de variables, posiblemente de diferentes tipos, agrupadas bajo un mismo nombre.
  2. Declaración de Estructura: Se utiliza la palabra clave struct para declarar una estructura.
  3. Acceso a Miembros de la Estructura: Los miembros de una estructura se acceden utilizando el operador punto (.).
  4. Inicialización de Estructuras: Las estructuras pueden ser inicializadas al momento de su declaración.

Declaración de una Estructura

Para declarar una estructura, se utiliza la siguiente sintaxis:

struct NombreEstructura {
    tipo_dato1 miembro1;
    tipo_dato2 miembro2;
    // más miembros
};

Ejemplo Práctico

Vamos a declarar una estructura para almacenar la información de un estudiante:

#include <stdio.h>

// Declaración de la estructura
struct Estudiante {
    char nombre[50];
    int edad;
    float calificacion;
};

int main() {
    // Declaración de una variable de tipo struct Estudiante
    struct Estudiante estudiante1;

    // Asignación de valores a los miembros de la estructura
    strcpy(estudiante1.nombre, "Juan Perez");
    estudiante1.edad = 20;
    estudiante1.calificacion = 8.5;

    // Acceso y muestra de los valores de los miembros
    printf("Nombre: %s\n", estudiante1.nombre);
    printf("Edad: %d\n", estudiante1.edad);
    printf("Calificación: %.2f\n", estudiante1.calificacion);

    return 0;
}

Explicación del Código

  1. Declaración de la Estructura:

    struct Estudiante {
        char nombre[50];
        int edad;
        float calificacion;
    };
    

    Aquí, hemos declarado una estructura llamada Estudiante que tiene tres miembros: nombre (cadena de caracteres), edad (entero) y calificacion (flotante).

  2. Declaración de una Variable de Tipo Estructura:

    struct Estudiante estudiante1;
    

    Hemos declarado una variable estudiante1 de tipo struct Estudiante.

  3. Asignación de Valores a los Miembros:

    strcpy(estudiante1.nombre, "Juan Perez");
    estudiante1.edad = 20;
    estudiante1.calificacion = 8.5;
    

    Utilizamos strcpy para copiar la cadena "Juan Perez" al miembro nombre de estudiante1. Luego, asignamos valores a edad y calificacion.

  4. Acceso y Muestra de los Valores:

    printf("Nombre: %s\n", estudiante1.nombre);
    printf("Edad: %d\n", estudiante1.edad);
    printf("Calificación: %.2f\n", estudiante1.calificacion);
    

    Utilizamos printf para mostrar los valores de los miembros de estudiante1.

Ejercicio Práctico

Ejercicio 1

Declara una estructura llamada Libro que tenga los siguientes miembros: titulo (cadena de caracteres), autor (cadena de caracteres) y precio (flotante). Luego, declara una variable de tipo Libro, asigna valores a sus miembros y muestra estos valores en la consola.

Solución

#include <stdio.h>
#include <string.h>

// Declaración de la estructura
struct Libro {
    char titulo[100];
    char autor[50];
    float precio;
};

int main() {
    // Declaración de una variable de tipo struct Libro
    struct Libro libro1;

    // Asignación de valores a los miembros de la estructura
    strcpy(libro1.titulo, "Cien Años de Soledad");
    strcpy(libro1.autor, "Gabriel Garcia Marquez");
    libro1.precio = 19.99;

    // Acceso y muestra de los valores de los miembros
    printf("Título: %s\n", libro1.titulo);
    printf("Autor: %s\n", libro1.autor);
    printf("Precio: %.2f\n", libro1.precio);

    return 0;
}

Explicación del Ejercicio

  1. Declaración de la Estructura:

    struct Libro {
        char titulo[100];
        char autor[50];
        float precio;
    };
    

    Hemos declarado una estructura llamada Libro con tres miembros: titulo, autor y precio.

  2. Declaración de una Variable de Tipo Estructura:

    struct Libro libro1;
    

    Hemos declarado una variable libro1 de tipo struct Libro.

  3. Asignación de Valores a los Miembros:

    strcpy(libro1.titulo, "Cien Años de Soledad");
    strcpy(libro1.autor, "Gabriel Garcia Marquez");
    libro1.precio = 19.99;
    

    Utilizamos strcpy para copiar las cadenas "Cien Años de Soledad" y "Gabriel Garcia Marquez" a los miembros titulo y autor de libro1, respectivamente. Luego, asignamos el valor 19.99 al miembro precio.

  4. Acceso y Muestra de los Valores:

    printf("Título: %s\n", libro1.titulo);
    printf("Autor: %s\n", libro1.autor);
    printf("Precio: %.2f\n", libro1.precio);
    

    Utilizamos printf para mostrar los valores de los miembros de libro1.

Conclusión

En esta lección, hemos aprendido qué son las estructuras en C, cómo declararlas, inicializarlas y acceder a sus miembros. Las estructuras son una herramienta poderosa para organizar datos relacionados y hacer que el código sea más legible y manejable. En la próxima lección, exploraremos las estructuras anidadas, que nos permitirán crear estructuras más complejas y útiles.

Curso de Programación en C

Módulo 1: Introducción a C

Módulo 2: Tipos de Datos y Variables

Módulo 3: Flujo de Control

Módulo 4: Funciones

Módulo 5: Arreglos y Cadenas

Módulo 6: Punteros

Módulo 7: Estructuras y Uniones

Módulo 8: Asignación Dinámica de Memoria

Módulo 9: Manejo de Archivos

Módulo 10: Temas Avanzados

Módulo 11: Mejores Prácticas y Optimización

Módulo 12: Proyecto y Evaluación Final

© Copyright 2024. Todos los derechos reservados