< Todos los temas
Imprimir

Estructuras en C: Organizando datos de manera eficiente

Imagina que una estructura es como un libro. Un libro tiene diferentes partes: el título, el autor, el año de publicación, entre otros. Cada parte del libro cumple una función específica y contribuye a la totalidad de la obra.

De manera similar, una estructura en C tiene diferentes campos que representan partes de un concepto o entidad. Por ejemplo, una estructura para un libro podría tener campos para el título, el autor, el año de publicación y otros detalles. Cada campo de la estructura cumple una función específica y contribuye a la representación completa de la entidad dentro del programa.

Para ser específicos, las estructuras son una colección de variables de diferentes tipos que se agrupan bajo un solo nombre. Estas variables pueden ser de cualquier tipo de datos válido en C, incluidos enteros, flotantes, caracteres, punteros, y, de manera crucial, otras estructuras.

Usos comunes de las estructuras en C

Las estructuras en C son muy versátiles y se utilizan en una variedad de situaciones. Algunos usos comunes incluyen:

  • Representar entidades complejas: Las estructuras pueden utilizarse para representar objetos complejos, como personas, autos, etc., que tienen múltiples propiedades.
  • Almacenar datos en estructuras de datos: Las estructuras pueden ser elementos fundamentales de estructuras de datos más complejas, como listas enlazadas, árboles, tablas hash, entre otros.
  • Organizar información: Las estructuras pueden agrupar datos relacionados y organizarlos de manera lógica para facilitar su manipulación y gestión.
  • Pasar datos a funciones: Las estructuras permiten pasar múltiples datos relacionados a funciones en lugar de pasar cada dato por separado.

¿Cómo puedo definir una estructura en C?

La sintaxis para definir una estructura en C es bastante intuitiva, veamos como se hace:

typedef struct {    
    string title;
    string author;    
    int year;
} book;

Donde la palabra reservada struct nos permite hacer la definición. Dentro de los corchetes nos vamos a encontrar con algo llamado campos, esto solamente son variables a las que podemos acceder mediante una variable del tipo de mi estructura.

Para hacer que la declaración de estructuras sea más concisa y legible, podemos usar typedef. Esto nos permite definir un nombre corto para la estructura, lo que facilita su uso en todo el código. En nuestro caso el nombre corto es book.

Ahora podemos definir datos de tipo book, de la siguiente forma:

book ejemplo;

Esta variable llamada ejemplo ahora tiene acceso a los 3 campos definidos previamente. Y para poder acceder a ellos ocuparemos la siguiente sintaxis:

dato.campo;

En nuestro caso sería:

ejemplo.title = "The hunger games";
ejemplo.author = "Suzanne Collins";
ejemplo.year = 2008;

De igual forma podemos definir arreglos del tipo de nuestra estructura.

book hungerGames[3];

Y para acceder a los datos ahora vamos a especificar el nombre de la variable, seguido de la posición y por último accedemos al campo.

hungerGames[0].title = "The hunger games";
hungerGames[0].author = "Suzanne Collins";
hungerGames[0].year = 2008;

Y así sucesivamente con los demás indices de nuestro arreglo. Ahora, para imprimir los datos es lo mismo, cómo es un arreglo, podemos imprimirlos usando un ciclo for, solo que ahora vamos a especificar el indice y el nombre del campo.

for (int i = 0; i < 3; i++)
{
    printf("Título: %s\n", hungerGames[i].title);
    printf("Autor: %s\n", hungerGames[i].author);
    printf("Año: %d\n", hungerGames[i].year);
    printf("-----------------------\n");
}

Las estructuras en C son una herramienta poderosa que permite a los programadores definir tipos de datos personalizados y organizar información de manera eficiente. Al comprender cómo funcionan las estructuras y cómo se utilizan, los programadores pueden escribir código más limpio, modular y fácil de entender. Con esto ya podemos empezar a comprender temas más complejos que iremos estudiando en próximos artículos.

Tabla de contenidos