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
structpara 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
Estudianteque 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
estudiante1de tipostruct Estudiante. -
Asignación de Valores a los Miembros:
strcpy(estudiante1.nombre, "Juan Perez"); estudiante1.edad = 20; estudiante1.calificacion = 8.5;Utilizamos
strcpypara copiar la cadena "Juan Perez" al miembronombredeestudiante1. Luego, asignamos valores aedadycalificacion. -
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
printfpara 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
Librocon tres miembros:titulo,autoryprecio. -
Declaración de una Variable de Tipo Estructura:
struct Libro libro1;Hemos declarado una variable
libro1de 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
strcpypara copiar las cadenas "Cien Años de Soledad" y "Gabriel Garcia Marquez" a los miembrostituloyautordelibro1, 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
printfpara 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
