Menu
Coddy logo textTech

Acceso a los miembros de un struct

Parte de la sección Logic & Flow del Journey de C de Coddy — lección 41 de 63.

Ahora que puedes crear variables de tipo struct, necesitas aprender a trabajar con los datos almacenados dentro de ellas. El operador punto (.) es la clave para acceder y modificar los miembros individuales de una variable struct.

La sintaxis para acceder a los miembros de una estructura es sencilla:

structVariable.memberName

Usando nuestro ejemplo de struct Point, puedes tanto leer como escribir en sus miembros:

struct Point p1;

// Escribiendo en los miembros de la estructura
p1.x = 10;
p1.y = 20;

// Leyendo de los miembros de la estructura
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

El operador de punto funciona exactamente igual que acceder a cualquier otra variable: puedes usarlo en asignaciones, operaciones aritméticas, llamadas a funciones o en cualquier lugar donde usarías una variable regular de ese tipo. Cada miembro se comporta como una variable independiente de su tipo declarado, lo que te permite manipular los datos de la struct de una manera organizada e intuitiva.

challenge icon

Desafío

Fácil

Crea un programa en C que demuestre cómo acceder y modificar los miembros de una estructura utilizando el operador punto. Tu programa debe:

  1. Definir un struct llamado Car con los siguientes miembros:
    • Un entero year para almacenar el año de fabricación
    • Un arreglo de caracteres brand con tamaño 20 para almacenar la marca del coche
    • Un entero mileage para almacenar el kilometraje actual
    • Un flotante price para almacenar el precio del coche
  2. Crear una variable de tipo Car llamada myCar
  3. Leer los siguientes valores de entrada y asignarlos a los miembros de la estructura utilizando el operador punto:
    • Leer un entero para el año y asignarlo a myCar.year
    • Leer una cadena para la marca y asignarla a myCar.brand
    • Leer un entero para el kilometraje y asignarlo a myCar.mileage
    • Leer un flotante para el precio y asignarlo a myCar.price
  4. Después de leer todos los valores, realiza las siguientes operaciones:
    • Incrementar el kilometraje en 1000 usando myCar.mileage += 1000;
    • Disminuir el precio en 500.0 usando myCar.price -= 500.0;
  5. Imprimir la información del coche utilizando el operador punto para acceder a cada miembro en este formato exacto:
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

Este desafío pone a prueba tu comprensión del operador punto tanto para leer como para escribir en los miembros de una estructura. Practicarás la asignación de valores a los miembros de la estructura, la realización de operaciones aritméticas sobre ellos y el acceso a los mismos para su salida.

Por ejemplo, si la entrada es:

2020
Toyota
50000
25000.50

Tu salida debería ser:

Car Details:
Year: 2020
Brand: Toyota
Mileage: 51000
Price: 24500.50

Hoja de referencia

El operador punto (.) se utiliza para acceder y modificar miembros individuales de una variable struct.

Sintaxis para acceder a los miembros de una struct:

structVariable.memberName

Ejemplo de lectura y escritura en miembros de una struct:

struct Point p1;

// Escribiendo en los miembros de la struct
p1.x = 10;
p1.y = 20;

// Leyendo de los miembros de la struct
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

El operador punto puede utilizarse en asignaciones, operaciones aritméticas, llamadas a funciones o en cualquier lugar donde se utilizaría una variable normal de ese tipo. Cada miembro se comporta como una variable independiente de su tipo declarado.

Pruébalo tú mismo

#include <stdio.h>
#include <string.h>

// TODO: Define la estructura Car aquí

int main() {
    // TODO: Crea una variable Car llamada myCar
    
    // Leer los valores de entrada
    int year;
    char brand[20];
    int mileage;
    float price;
    
    scanf("%d", &year);
    scanf("%s", brand);
    scanf("%d", &mileage);
    scanf("%f", &price);
    
    // TODO: Asigna los valores de entrada a los miembros de la estructura usando el operador punto
    
    // TODO: Modifica el kilometraje y el precio según lo especificado
    
    // TODO: Imprime los detalles del coche usando el operador punto
    printf("Car Details:\n");
    // Imprime el Año, Marca, Kilometraje y Precio aquí
    
    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 Logic & Flow