Menu
Coddy logo textTech

Accedere ai membri di una struct

Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 41 di 63.

Ora che sai creare variabili di tipo struct, devi imparare a lavorare con i dati memorizzati al loro interno. L’operatore punto (.) è la chiave per accedere ai singoli membri di una variabile di tipo struct e modificarli.

La sintassi per accedere ai membri di una struct è semplice:

structVariable.memberName

Usando il nostro esempio di struct Point, puoi sia leggere che scrivere i suoi membri:

struct Point p1;

// Scrittura nei membri della struct
p1.x = 10;
p1.y = 20;

// Lettura dai membri della struct
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

L'operatore punto funziona esattamente come accedere a qualsiasi altra variabile: puoi usarlo nelle assegnazioni, nelle operazioni aritmetiche, nelle chiamate di funzione o ovunque useresti una normale variabile di quel tipo. Ogni membro si comporta come una variabile indipendente del tipo dichiarato, consentendoti di manipolare i dati della struct in modo organizzato e intuitivo.

challenge icon

Sfida

Facile

Crea un programma C che mostri come accedere ai membri di una struct e modificarli usando l'operatore punto. Il tuo programma dovrebbe:

  1. Definire una struct chiamata Car con i seguenti membri:
    • Un intero year per memorizzare l'anno di produzione
    • Un array di caratteri brand di dimensione 20 per memorizzare la marca dell'auto
    • Un intero mileage per memorizzare il chilometraggio attuale
    • Un float price per memorizzare il prezzo dell'auto
  2. Creare una variabile Car chiamata myCar
  3. Leggere i seguenti valori di input e assegnarli ai membri della struct usando l'operatore punto:
    • Leggere un intero per l'anno e assegnarlo a myCar.year
    • Leggere una stringa per la marca e assegnarla a myCar.brand
    • Leggere un intero per il chilometraggio e assegnarlo a myCar.mileage
    • Leggere un float per il prezzo e assegnarlo a myCar.price
  4. Dopo aver letto tutti i valori, eseguire le seguenti operazioni:
    • Aumentare il chilometraggio di 1000 usando myCar.mileage += 1000;
    • Diminuire il prezzo di 500.0 usando myCar.price -= 500.0;
  5. Stampare le informazioni sull'auto usando l'operatore punto per accedere a ciascun membro, esattamente in questo formato:
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

Questa sfida verifica la tua comprensione dell'operatore punto per leggere e scrivere i membri di una struct. Ti eserciterai ad assegnare valori ai membri di una struct, a eseguire operazioni aritmetiche su di essi e ad accedervi per l'output.

Per esempio, se l'input è:

2020
Toyota
50000
25000.50

Il tuo output dovrebbe essere:

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

Provalo tu

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

// TODO: Definisci qui la struct Car

int main() {
    // TODO: Crea una variabile Car chiamata myCar
    
    // Leggi i valori di input
    int year;
    char brand[20];
    int mileage;
    float price;
    
    scanf("%d", &year);
    scanf("%s", brand);
    scanf("%d", &mileage);
    scanf("%f", &price);
    
    // TODO: Assegna i valori di input ai membri della struct usando l'operatore punto
    
    // TODO: Modifica il chilometraggio e il prezzo come specificato
    
    // TODO: Stampa i dettagli dell'auto usando l'operatore punto
    printf("Car Details:\n");
    // Stampa qui Year, Brand, Mileage e Price
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online