first commit

This commit is contained in:
Mr SL1D3R 2024-09-15 20:11:10 +02:00
commit a640a0dd9a
1 changed files with 63 additions and 0 deletions

63
README.md Normal file
View File

@ -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.