Go to file
Mr SL1D3R a640a0dd9a first commit 2024-09-15 20:11:10 +02:00
README.md first commit 2024-09-15 20:11:10 +02:00

README.md

Strutture in C

Le strutture in C sono un tipo di dato che permette di raggruppare variabili che sono correlate tra di loro e che sono di diversi tipi. Sono utili per rappresentare oggetti reali o dati correlati. In questo caso come esempio useremo una struttura per rappresentare una persona, con i campi nome, cognome e età.

Definizione di una struttura

Per definire una struttura, si utilizza struct seguita dal nome della struttura e dentro si va a inserire "un blocco di codice" che contiene le dichiarazioni delle variabili.

struct Persona {
    char nome[10];
    char cognome[10];
    int eta;
};

Dichiarazione di una variabile di struttura

Per dichiarare una variabile di struttura, si utilizza la parola chiave struct seguita dal nome della struttura e dal nome della variabile.

struct Persona p1;
  • Accesso ai membri di una struttura

    Per accedere ai membri di una struttura, si utilizza l'operatore . seguito dal nome del membro.

    p1.eta = 30;
    

Assegnazione di stringhe ai membri di una struttura

Per assegnare una stringa a un membro di una struttura, non è possibile utilizzare l'operatore di assegnazione = direttamente. Questo perché i campi di stringa in una struttura sono rappresentati come array di caratteri, e in C non è possibile assegnare una stringa a un array di caratteri con =. Invece, si deve utilizzare la funzione strcpy() della libreria string.h.

#include <string.h>

struct Persona p1;
strcpy(p1.nome, "Luca");
strcpy(p1.cognome, "Rossi");

Stampa dei dati di una struttura

Per stampare i dati di una struttura si possono usare 2 metodi:

  • Stampa i dati direttamente:

    printf("Nome: %s\n", p1.nome);
    printf("Cognome: %s\n", p1.cognome);
    printf("Eta: %d\n", p1.eta);
    

    Questo metodo è utile se si vuole stampare i dati di una struttura in un punto specifico del codice. Ma se dobbiamo andare a stampare tanti dati di una struttura, questo metodo può diventare ripetitivo e ingombrante.

  • Creare una funzione che stampa i dati di una struttura:

    void StampaPersona(struct Persona p) {
        printf("Nome: %s\n", p.nome);
        printf("Cognome: %s\n", p.cognome);
        printf("Eta: %d\n", p.eta);
    }
    

    Questo metodo è utile se si vuole stampare i dati di una struttura in più punti del codice. Inoltre, se si vuole stampare i dati di più strutture, si può passare la struttura come argomento alla funzione.