Inicialización de structs
Parte de la sección Lógica y Flujo del Journey de C de Coddy. Lección 42 de 63.
Aunque puedes crear variables de tipo struct y después asignar valores a sus miembros individualmente, C proporciona una forma más conveniente de establecer los valores iniciales. Puedes inicializar una variable de tipo struct en el momento de su declaración mediante una lista de inicialización encerrada entre llaves.
La sintaxis para la inicialización de estructuras es:
struct StructureName variableName = {value1, value2, ...};Usando nuestro ejemplo de la estructura Point, puedes declararla e inicializarla en una sola línea clara:
struct Point p1 = {10, 20};Esto crea una variable Point llamada p1 con x establecido en 10 e y establecido en 20. Los valores en la lista de inicializadores se asignan a los miembros de la estructura en el orden en que fueron declarados en la definición de la estructura.
Este enfoque de inicialización no solo es más conciso que las asignaciones separadas, sino que también garantiza que tu estructura comience con valores significativos en lugar de datos basura aleatorios. Es especialmente útil cuando conoces los valores iniciales en tiempo de compilación y quieres crear variables de estructura listas para usar de manera eficiente.
Desafío
FácilCrea un programa en C que demuestre la inicialización de estructuras mediante listas de inicializadores. Tu programa debe:
- Definir una
structllamadaEmployeecon los siguientes miembros:- Un entero
idpara almacenar el ID del empleado - Un arreglo de caracteres
departmentcon tamaño 15 para almacenar el nombre del departamento - Un entero
yearsOfServicepara almacenar los años de servicio - Un flotante
salarypara almacenar el salario del empleado
- Un entero
- Crear tres variables
Employeemediante listas de inicializadores con los siguientes datos:emp1: ID 101, departamento "Engineering", 5 años de servicio, salario 75000.50emp2: ID 102, departamento "Marketing", 3 años de servicio, salario 65000.25emp3: ID 103, departamento "Sales", 8 años de servicio, salario 80000.75
- Imprimir la información de cada empleado con este formato exacto:
Employee 1:ID: [id]Department: [department]Years of Service: [yearsOfService]Salary: [salary]Employee 2:ID: [id]Department: [department]Years of Service: [yearsOfService]Salary: [salary]Employee 3:ID: [id]Department: [department]Years of Service: [yearsOfService]Salary: [salary]
- Calcular e imprimir el salario total de los tres empleados con el formato:
Total Salary: [total] - Calcular e imprimir el promedio de años de servicio con el formato:
Average Years of Service: [average]
Este desafío pone a prueba tu comprensión de la inicialización de estructuras mediante listas de inicializadores, donde declaras e inicializas variables de estructura en una sola línea. Los valores de la lista de inicializadores deben proporcionarse en el mismo orden en que se declararon los miembros en la definición de la estructura.
El resultado esperado debe ser:
Employee 1:
ID: 101
Department: Engineering
Years of Service: 5
Salary: 75000.50
Employee 2:
ID: 102
Department: Marketing
Years of Service: 3
Salary: 65000.25
Employee 3:
ID: 103
Department: Sales
Years of Service: 8
Salary: 80000.75
Total Salary: 220001.50
Average Years of Service: 5.33Pruébalo tú mismo
#include <stdio.h>
// TODO: Definir la estructura Employee aquí
int main() {
// TODO: Crear tres variables Employee usando listas de inicialización
// TODO: Imprimir información para cada empleado
// TODO: Calcular e imprimir el salario total y el promedio de años de servicio
return 0;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
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 cadenasPractica por tu cuenta: Compilador de C online