Las estructuras en C te permiten definir tus propios tipos de datos combinando varios tipos de datos en una sola entidad. Aquí tienes una explicación detallada:
#include
#include
// Definición de una estructura
struct Persona {
char nombre[50];
int edad;
float altura;
};
int main() {
// Declaración de una variable de tipo Persona
struct Persona persona1;
// Asignación de valores a la estructura
strcpy(persona1.nombre, "Juan");
persona1.edad = 25;
persona1.altura = 1.75;
// Acceso a los campos de la estructura y muestra de los valores
printf("Nombre: %s\n", persona1.nombre);
printf("Edad: %d\n", persona1.edad);
printf("Altura: %.2f\n", persona1.altura);
return 0;
}
Definición de una Estructura:
struct seguida del nombre de la estructura y los campos que contiene entre llaves {}. En este caso, definimos una estructura llamada Persona con campos para nombre, edad y altura.Declaración de una Variable de Tipo Estructura:
persona1 de tipo Persona.Asignación de Valores:
. (punto). Por ejemplo, persona1.nombre accede al campo nombre de la estructura persona1.Acceso a los Campos y Muestra de Valores:
printf para mostrar los valores de los campos de la estructura persona1.Las estructuras te permiten organizar datos relacionados en una sola entidad, lo que facilita el manejo de datos más complejos en tus programas en C.
En C, puedes anidar estructuras dentro de otras estructuras para representar relaciones más complejas entre los datos. Aquí tienes un ejemplo:
#include
#include
// Definición de una estructura
struct Fecha {
int dia;
int mes;
int año;
};
// Definición de otra estructura que contiene una estructura Fecha
struct Persona {
char nombre[50];
int edad;
struct Fecha fechaNacimiento;
};
int main() {
// Declaración de una variable de tipo Persona
struct Persona persona1;
// Asignación de valores a los campos de la estructura
strcpy(persona1.nombre, "Juan");
persona1.edad = 25;
persona1.fechaNacimiento.dia = 15;
persona1.fechaNacimiento.mes = 6;
persona1.fechaNacimiento.año = 1990;
// Acceso a los campos anidados y muestra de los valores
printf("Nombre: %s\n", persona1.nombre);
printf("Edad: %d\n", persona1.edad);
printf("Fecha de Nacimiento: %d/%d/%d\n", persona1.fechaNacimiento.dia,
persona1.fechaNacimiento.mes, persona1.fechaNacimiento.año);
return 0;
}
Definición de Estructuras Anidadas:
Fecha que contiene campos para día, mes y año. Luego, definimos una estructura Persona que contiene campos para nombre, edad y otra estructura Fecha para la fecha de nacimiento.Declaración de Variables y Asignación de Valores:
persona1 de tipo Persona y asignamos valores a sus campos, incluido el campo fechaNacimiento que es de tipo Fecha.Acceso a los Campos Anidados y Muestra de Valores:
. para acceder a los campos anidados de la estructura y mostrar sus valores con printf.El anidamiento de estructuras te permite representar datos más complejos y relacionados de manera organizada en tus programas en C.
Vamos a hablar sobre las uniones en C de una manera más accesible y detallada.
Definición y Uso de Uniones en C:
Imagina que una unión es como una caja que puede contener diferentes tipos de objetos, pero solo puede tener uno a la vez. Veamos un ejemplo:
#include
// Definición de una unión
union Valor {
int entero;
float flotante;
char caracter;
};
int main() {
// Declaración de una variable de tipo unión
union Valor valor;
// Asignación de valores a la unión
valor.entero = 10;
printf("Entero: %d\n", valor.entero);
valor.flotante = 3.14;
printf("Flotante: %.2f\n", valor.flotante);
valor.caracter = 'A';
printf("Caracter: %c\n", valor.caracter);
return 0;
}
Definición de una Unión:
Valor que puede contener un entero, un flotante o un carácter.Declaración de una Variable de Tipo Unión:
valor de tipo Valor. Esta variable puede contener cualquier tipo de datos que definimos en la unión.Asignación de Valores:
Acceso a los Campos y Muestra de Valores:
entero, flotante, caracter) y mostramos sus valores utilizando printf.Las uniones son útiles cuando necesitas almacenar diferentes tipos de datos en la misma ubicación de memoria, pero solo necesitas acceder a uno de ellos en un momento dado. ¡Es como tener una caja mágica que puede contener diferentes cosas según lo que necesites en cada momento!
Las estructuras y las uniones en C son tipos de datos que te permiten agrupar diferentes variables juntas, pero tienen diferencias importantes en cómo almacenan y acceden a los datos. Vamos a compararlas:
Definición:
Uso:
Acceso a los Miembros:
..Uso Común:
Definición:
Uso:
Acceso a los Miembros:
Uso Común:
#include
// Definición de una estructura
struct Persona {
char nombre[50];
int edad;
};
// Definición de una unión
union Valor {
int entero;
float flotante;
};
int main() {
printf("Tamaño de estructura Persona: %lu bytes\n", sizeof(struct Persona));
printf("Tamaño de unión Valor: %lu bytes\n", sizeof(union Valor));
return 0;
}
En este ejemplo, la estructura Persona ocupará más espacio en memoria porque necesita almacenar dos miembros (nombre y edad), mientras que la unión Valor ocupará solo el tamaño del miembro más grande (entero o flotante) ya que comparten la misma ubicación de memoria.
