Menu
Coddy logo textTech

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.

challenge icon

Desafío

Fácil

Crea un programa en C que demuestre la inicialización de estructuras mediante listas de inicializadores. Tu programa debe:

  1. Definir una struct llamada Employee con los siguientes miembros:
    • Un entero id para almacenar el ID del empleado
    • Un arreglo de caracteres department con tamaño 15 para almacenar el nombre del departamento
    • Un entero yearsOfService para almacenar los años de servicio
    • Un flotante salary para almacenar el salario del empleado
  2. Crear tres variables Employee mediante listas de inicializadores con los siguientes datos:
    • emp1: ID 101, departamento "Engineering", 5 años de servicio, salario 75000.50
    • emp2: ID 102, departamento "Marketing", 3 años de servicio, salario 65000.25
    • emp3: ID 103, departamento "Sales", 8 años de servicio, salario 80000.75
  3. 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]
  4. Calcular e imprimir el salario total de los tres empleados con el formato: Total Salary: [total]
  5. 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.33

Prué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;
}
quiz iconPonte a prueba

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

Practica por tu cuenta: Compilador de C online