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
- Definición de Estructura: Una estructura es una colección de variables, posiblemente de diferentes tipos, agrupadas bajo un mismo nombre.
- Declaración de Estructura: Se utiliza la palabra clave
struct
para declarar una estructura. - Acceso a Miembros de la Estructura: Los miembros de una estructura se acceden utilizando el operador punto (
.
). - 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:
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
-
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) ycalificacion
(flotante). -
Declaración de una Variable de Tipo Estructura:
struct Estudiante estudiante1;
Hemos declarado una variable
estudiante1
de tipostruct Estudiante
. -
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 miembronombre
deestudiante1
. Luego, asignamos valores aedad
ycalificacion
. -
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 deestudiante1
.
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
-
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
yprecio
. -
Declaración de una Variable de Tipo Estructura:
struct Libro libro1;
Hemos declarado una variable
libro1
de tipostruct Libro
. -
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 miembrostitulo
yautor
delibro1
, respectivamente. Luego, asignamos el valor 19.99 al miembroprecio
. -
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 delibro1
.
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
- Introducción a la Programación
- Configuración del Entorno de Desarrollo
- Programa Hola Mundo
- Sintaxis y Estructura Básica
Módulo 2: Tipos de Datos y Variables
Módulo 3: Flujo de Control
Módulo 4: Funciones
- Introducción a las Funciones
- Argumentos de Función y Valores de Retorno
- Ámbito y Vida de las Variables
- Funciones Recursivas
Módulo 5: Arreglos y Cadenas
- Introducción a los Arreglos
- Arreglos Multidimensionales
- Manejo de Cadenas
- Funciones de 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
- Introducción al Manejo de Archivos
- Lectura y Escritura de Archivos
- Posicionamiento de Archivos
- Manejo de Errores en Operaciones de Archivos
Módulo 10: Temas Avanzados
- Directivas del Preprocesador
- Argumentos de Línea de Comandos
- Listas de Argumentos Variables
- Multihilo en C
Módulo 11: Mejores Prácticas y Optimización
- Legibilidad del Código y Documentación
- Técnicas de Depuración
- Optimización del Rendimiento
- Consideraciones de Seguridad