Declaración de un struct
Parte de la sección Logic & Flow del Journey de C de Coddy — lección 39 de 63.
Ahora que entiendes qué es un struct, es hora de aprender a crear tus propios tipos de estructura. Declarar un struct en C sigue una sintaxis específica que define el modelo para tu tipo de datos personalizado.
La sintaxis básica para declarar un struct es:
struct StructureName {
datatype member1;
datatype member2;
// ... más miembros
};Así es como funciona cada parte: comienzas con la palabra clave struct, seguida de un nombre para tu estructura, luego enumeras todas las variables miembro dentro de llaves. Cada miembro se declara igual que una variable regular con su tipo de datos y nombre. ¡No olvides el punto y coma después de la llave de cierre!
Por ejemplo, para crear una estructura que represente un punto en un espacio 2D:
struct Point {
int x;
int y;
};Esta declaración crea un nuevo tipo de datos llamado struct Point que contiene dos miembros enteros: x y y. Una vez declarado, este tipo de estructura se puede utilizar en todo el programa para crear variables que contengan información de coordenadas de forma organizada.
Desafío
FácilCrea un programa en C que defina un struct para representar un libro en un sistema de biblioteca. Tu programa debe:
- Definir un
structllamadoBookque contenga los siguientes miembros:- Un entero
idpara almacenar el número de identificación del libro - Un arreglo de caracteres
titlecon tamaño 50 para almacenar el título del libro - Un entero
pagespara almacenar el número de páginas - Un flotante
pricepara almacenar el precio del libro
- Un entero
- Después de definir el struct, imprime un mensaje de confirmación:
Book struct defined successfully! - Imprime el tamaño del
struct Booken bytes usandosizeof()en el formato:Size of Book struct: [size] bytes - Imprime el tamaño de cada miembro individualmente:
Size of id: [size] bytesSize of title: [size] bytesSize of pages: [size] bytesSize of price: [size] bytes
Este desafío pone a prueba tu comprensión de la sintaxis de declaración de structs, incluyendo el uso adecuado de la palabra clave struct, las declaraciones de miembros con tipos de datos apropiados y el punto y coma después de la llave de cierre. También explorarás cómo C asigna memoria para los miembros de un struct usando el operador sizeof().
Recuerda que los valores de tamaño exactos pueden variar dependiendo de la arquitectura de tu sistema, pero la sintaxis de definición del struct debe ser correcta para que el programa se compile y ejecute con éxito.
Hoja de referencia
Para declarar una struct en C, utiliza la siguiente sintaxis:
struct StructureName {
datatype member1;
datatype member2;
// ... más miembros
};Comienza con la palabra clave struct, seguida de un nombre para tu estructura, luego enumera todas las variables miembro dentro de llaves. Cada miembro se declara con su tipo de dato y nombre. ¡No olvides el punto y coma después de la llave de cierre!
Ejemplo de una estructura Point:
struct Point {
int x;
int y;
};Esto crea un nuevo tipo de dato llamado struct Point con dos miembros enteros que se pueden utilizar en todo tu programa.
Pruébalo tú mismo
#include <stdio.h>
int main() {
// TODO: Define tu estructura Book aquí
// Imprimir mensaje de confirmación
printf("Book struct defined successfully!\n");
// TODO: Imprimir el tamaño de la estructura Book y sus miembros
return 0;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Logic & Flow
1Fundamentos de Punteros
¿Qué es un puntero?Declaración de punterosEl operador de dirección (&)El operador de desreferencia (*)Punteros NULLResumen: Conceptos básicos de punteros4Proyecto: Utilidad de texto simple
Descripción general del proyectoContar caracteres7Estructuras (structs)
¿Qué es un struct?Declaración de un structCreación de variables de tipo structAcceso a los miembros de un structInicialización de structsResumen: Struct de datos de estudiantes2Punteros y Arrays
Nombres de Arrays como PunterosElementos de un Array - PunterosAritmética de PunterosComparación de PunterosResumen: Recorrido de Arrays con Punteros5Punteros y funciones
Paso por valorPasar punteros a funcionesModificar variables mediante punterosUn ejemplo clásico: Intercambio (Swap)Pasar arrays a funcionesResumen: Argumentos de punteros a funciones3Arreglos de caracteres y cadenas
Cadenas como arreglos de charEl terminador nuloEntrada de cadenas con scanfUso de strlen()Uso de strcpy()Uso de strcat()Uso de strcmp()Resumen: Funciones básicas de cadenas