first commit
This commit is contained in:
commit
a640a0dd9a
|
@ -0,0 +1,63 @@
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
```c
|
||||||
|
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.
|
||||||
|
|
||||||
|
```c
|
||||||
|
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.
|
||||||
|
|
||||||
|
```c
|
||||||
|
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.
|
||||||
|
|
||||||
|
```c
|
||||||
|
#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:
|
||||||
|
```c
|
||||||
|
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:
|
||||||
|
```c
|
||||||
|
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.
|
Loading…
Reference in New Issue