Il 0% ha trovato utile questo documento (0 voti)
3 visualizzazioni

Corso C completo

Il documento fornisce un'introduzione completa al linguaggio di programmazione C, coprendo variabili, costanti, tipi di dati, operatori, funzioni matematiche, strutture di controllo come if, cicli while e for, e gestione degli array. Viene spiegato anche il concetto di scope delle variabili e le istruzioni break e continue. Infine, il documento illustra come lavorare con array e array multidimensionali, evidenziando la loro importanza nella gestione di dati simili.

Caricato da

yoyix76472
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
3 visualizzazioni

Corso C completo

Il documento fornisce un'introduzione completa al linguaggio di programmazione C, coprendo variabili, costanti, tipi di dati, operatori, funzioni matematiche, strutture di controllo come if, cicli while e for, e gestione degli array. Viene spiegato anche il concetto di scope delle variabili e le istruzioni break e continue. Infine, il documento illustra come lavorare con array e array multidimensionali, evidenziando la loro importanza nella gestione di dati simili.

Caricato da

yoyix76472
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 15

Corso C completo(appunti)

 Variabili
Sono una sorta di celletta o una scatoletta di memoria in cui è contenuto un valore. La
larghezza di questa celletta di memoria dipende dal tipo di dato. È un nome a cui è
associato un valore.
(tipo di dato) Int eta = 31 ; Eta = 32( è pensata per cambiare nel tempo, è una
variabile)
Inizializzazione: int età = 31;
Equivale a fare dichiarazione e assegnazione (in certi casi non sappiamo subito che
valore assegnargli quindi usiamo il secondo metodo)
Dichiarazione: int etàNonna;
Assegnazione: etàNonna = 80;

 Costanti
Simili alle variabili. Per crearla basta aggiungere const int età; può solo essere letta
non è modificabile; generalmente si usa il maiuscolo a differenza del minuscolo delle
variabili

 Tipi di dati
E’ importante saper quali sono i tipi di dati e quando usare cosa, perché ad un
determinato tipo di dato corrisponde uno spazio di memoria utilizzato e noi vogliamo
ottimizzare la memoria occupata Tipo di dato= quanto spazio viene dedicato sulla
memoria
Tipi di dati interi: Int(permette di salvare numeri da -2 miliardi fino a due miliardi),
short , long, long long
Tipi di dati decimali: float, double, long double
Tipi di dati caratteri: char,
Tipi di dati booleani(valore vero(1) o falso(0)): bool
SPECIFICATORI
Ad esempio %d, ad ogni percentuale lettera corrisponde un tipo di dato
%c carattere, %d intero, %f decimale, %s stringhe

 Casting C
Il casting dei dati in C è un processo che consente di convertire un tipo di dato in un
altro. Questa operazione è utile quando si desidera eseguire operazioni che
coinvolgono tipi di dati diversi o quando è necessario adattare un valore a un tipo di
dato specifico.
Due casting in C:
1. Il casting implicito avviene automaticamente quando si assegna un valore di un
tipo di dati a una variabile di un tipo di dati diverso, purché la conversione sia
sicura. ES.
int numeroIntero = 42;
float numeroFloat = numeroIntero;
2. Il casting esplicito viene eseguito manualmente dall’utente e richiede l’uso
dell’operatore di casting (tipo) prima del valore che si desidera convertire. ES.
double numeroDouble = 3.14159;
int numeroIntero = (int)numeroDouble; // Casting esplicito da double a int
Nell’esempio sopra, il valore double 3.14159 viene convertito in un valore intero
tramite casting esplicito. Il risultato sarà 3, poiché la parte decimale viene
troncata.

 Lavorare con numeri


Come possiamo lavorare con i numeri? Ci sono vari operatori, i più semplici sono:
int x = 30 + 5 ( somma) ; int x = 30 – 5 ( differenza); int x = 30 *5( moltiplicazione);
int x = 30 / 5 ( divisione); int x = 30 % 5 ( modulo, ci restituisce il resto della divisione)
Poi ci sono operatori di incremento e decremento
Int x = 11; x++( il compilatore restituisce 12); Int x = 11; x--(Il compilatore restituisce
10)
Funzioni Matematiche Utili:
Alcune di queste funzioni sono incluse nella libreria standard di C (<math.h>), mentre
altre possono essere definite dall’utente. Ecco alcune funzioni matematiche comuni:
1.sqrt(x): Restituisce la radice quadrata di x.
2.pow(base, esponente): Calcola la potenza di base elevata a esponente.
3.abs(x): Restituisce il valore assoluto di x.
4.rand(): Restituisce un numero pseudo-casuale.
5.srand(seed): Imposta il seme per la generazione dei numeri casuali.

 Operatori di comparazione
Gli operatori di confronto in C sono utilizzati per confrontare valori e determinare se
una determinata condizione è vera o falsa. Queste operazioni sono fondamentali per la
creazione di espressioni condizionali e di controllo del flusso del programma.
Ecco una lista degli operatori di confronto in C:
== (Uguale a): Questo operatore restituisce vero (1) se i due operandi sono uguali,
altrimenti restituisce falso (0).
!= (Diverso da): Restituisce vero se i due operandi sono diversi, altrimenti restituisce
falso.
> (Maggiore di): Restituisce vero se il primo operando è maggiore del secondo,
altrimenti restituisce falso.
< (Minore di): Restituisce vero se il primo operando è minore del secondo, altrimenti
restituisce falso.
>= (Maggiore o uguale a): Restituisce vero se il primo operando è maggiore o uguale
al secondo, altrimenti restituisce falso.
<= (Minore o uguale a): Restituisce vero se il primo operando è minore o uguale al
secondo, altrimenti restituisce falso.

 Operatori Logici in C
Ecco una lista degli operatori logici in C:
1. && (AND Logico): Questo operatore restituisce vero se entrambe le condizioni a
sinistra e a destra sono vere, altrimenti restituisce falso.
2. || (OR Logico): Restituisce vero se almeno una delle condizioni a sinistra o a
destra è vera, altrimenti restituisce falso.
3. ! (NOT Logico): Questo operatore inverte il valore di verità di una condizione. Se
la condizione è vera, diventa falsa, e viceversa.
 Condizioni con IF ELSE
L’istruzione if è un costrutto di controllo condizionale che permette al programma di
prendere decisioni in base al valore di una condizione. Questa condizione è una
dichiarazione booleana, che può essere vera (1) o falsa (0). L’istruzione if consente di
eseguire un blocco di codice solo se la condizione specificata è vera.
Ecco la sintassi di base di un’istruzione if in C:
if (condizione) {
// Blocco di codice da eseguire se la condizione è vera
}
Condizione: Una dichiarazione booleana che viene valutata come vera o falsa.
Blocco di codice: Il codice da eseguire se la condizione è vera. È racchiuso tra
parentesi graffe {}.
In aggiunta all’istruzione if, è possibile utilizzare l’istruzione else per definire un blocco
di codice da eseguire quando la condizione è falsa. Ad esempio:
int eta = 15;
if (eta >= 18) {
printf("Sei maggiorenne\n");
} else {
printf("Sei minorenne\n");
}
In questo caso, se l’età è inferiore a 18, verrà visualizzato il messaggio “Sei
minorenne”.
L’istruzione else if viene utilizzata per gestire più condizioni in modo sequenziale.

 Operatore Ternario in C
L’operatore ternario in C è un costrutto che consente di scrivere espressioni
condizionali in modo conciso. È noto anche come operatore condizionale e offre un
modo rapido per prendere decisioni basate su una condizione specifica. Ecco la
sintassi dell’operatore ternario in C:

condizione ? valore_se_vero : valore_se_falso;


condizione: La condizione che desideri valutare. Se è vera, verrà restituito
valore_se_vero, altrimenti verrà restituito valore_se_falso.
valore_se_vero: Il valore restituito se la condizione è vera.
valore_se_falso: Il valore restituito se la condizione è falsa.

 Ciclo While in C
Il ciclo while in C è un costrutto di controllo del flusso che consente di eseguire un
blocco di codice ripetutamente finché una condizione specificata è vera. Il ciclo while è
un ciclo di controllo basato su condizione, il che significa che ripete un blocco di codice
finché una determinata condizione è vera. La struttura del ciclo while è la seguente:
while (condizione) {
// Blocco di codice da eseguire finché la condizione è vera
}

Il ciclo do while è simile al ciclo while, ma garantisce che il blocco di codice venga
eseguito almeno una volta, anche se la condizione è falsa sin dall’inizio. La struttura
del ciclo do while è la seguente:
do {
// Blocco di codice da eseguire almeno una volta
} while (condizione);
Blocco di codice: Il codice all’interno delle parentesi graffe {} viene eseguito almeno
una volta, indipendentemente dalla condizione.
condizione: Una condizione booleana che viene valutata alla fine di ogni iterazione. Se
la condizione è vera, il ciclo continua; altrimenti, termina.

 Ciclo FOR
Il ciclo for in C è una struttura di loop versatile che consente di eseguire un blocco di
codice un numero specifico di volte. È ampiamente utilizzato quando è necessario
iterare su una sequenza di valori, ad esempio da 1 a N.
La sintassi del ciclo for in C è la seguente:
for (inizializzazione; condizione; incremento/decremento) {
// Blocco di codice da eseguire durante ogni iterazione
}
Inizializzazione: È l’espressione utilizzata per inizializzare il contatore o la variabile di
controllo prima dell’inizio del ciclo. Solitamente, questa è la dichiarazione e
l’inizializzazione di una variabile.
Condizione: È la condizione che viene valutata prima di ogni iterazione. Se è vera, il
ciclo continua; altrimenti, termina.
Incremento/decremento: Questa espressione viene eseguita dopo ogni iterazione e
modifica il contatore o la variabile di controllo. Di solito, viene utilizzata per aumentare
o diminuire il valore del contatore.

 Break e Continue in C
Le istruzioni break e continue sono utilizzate per controllare il flusso all’interno dei cicli
in C, consentendo di modificare il comportamento predefinito di un ciclo. Queste
istruzioni sono fondamentali per gestire casi speciali o interrompere l’esecuzione di un
ciclo in modo anticipato.
1. L’istruzione break è utilizzata per interrompere immediatamente l’esecuzione
di un ciclo, uscendo da esso prematuramente. Quando viene incontrata
un’istruzione break, il controllo viene trasferito al punto successivo al ciclo. È
comunemente utilizzata per uscire da un ciclo quando viene soddisfatta una
condizione specifica.

for (int i = 1; i <= 10; i++) {


if (i % 2 == 0) {
printf("Numero pari trovato: %d\n", i);
break; // Interrompe il ciclo quando viene trovato un numero pari
}
}
2. L’istruzione continue viene utilizzata per saltare l’iterazione corrente di un
ciclo e passare alla successiva. Quando viene incontrata un’istruzione
continue, il flusso di esecuzione salta direttamente alla prossima iterazione
del ciclo, ignorando tutto il codice che segue nell’iterazione corrente.

for (int i = 1; i <= 5; i++) {


if (i == 3) {
continue; // Salta l'iterazione quando i è uguale a 3
}
printf("Valore di i: %d\n", i);
}
In questo esempio, quando il valore di i è uguale a 3, l’istruzione continue fa
sì che il ciclo passi direttamente alla prossima iterazione, evitando di stampare il
valore di i in questa specifica iterazione.

 Scope Variabili in C
In C, lo scope delle variabili si riferisce alla visibilità e alla durata di una variabile
all’interno di un programma. Comprendere il concetto di scope è fondamentale
per scrivere codice C corretto ed efficiente. Scope Locale
1. Una variabile dichiarata all’interno di una funzione in C è una variabile
locale, il che significa che il suo scope è limitato alla funzione in cui è stata
dichiarata. Questa variabile è visibile solo all’interno della funzione e non è
accessibile da altre funzioni o dal codice al di fuori della funzione.
2. Una variabile dichiarata al di fuori di tutte le funzioni in un programma C è
una variabile globale. Queste variabili sono visibili da tutte le funzioni nel
programma e mantengono il loro valore anche quando le funzioni terminano.
 Array in C
In C, un array è una struttura dati che consente di memorizzare una raccolta di
elementi dello stesso tipo. Gli array sono uno strumento fondamentale nella
programmazione, poiché consentono di gestire gruppi di dati in modo efficiente.
Un array in C è una struttura dati che contiene un numero fisso di elementi dello
stesso tipo. Ogni elemento in un array è identificato da un indice, che
rappresenta la sua posizione nell’array. Gli indici degli array iniziano solitamente
da zero.
Gli array sono utili quando è necessario gestire un insieme di dati simili, come
una serie di numeri, caratteri o altri oggetti dello stesso tipo.
1. Creare un Array
In C, è possibile creare un array dichiarandolo con il suo tipo e specificando la
dimensione desiderata. Ad esempio, per creare un array di 10 interi:
int numeri[10];
Questo crea un array chiamato numeri con 10 elementi di tipo intero. Gli indici
dell’array vanno da 0 a 9.
2. Accesso agli elementi di un array
Per accedere agli elementi di un array, è possibile utilizzare l’operatore di
accesso agli indici []. Ad esempio, per assegnare un valore all’elemento dell’array
all’indice 2:
numeri[2] = 42;
Per leggere un valore da un elemento dell’array:
int valore = numeri[2];
3. Modificare gli Elementi dell’Array
Gli elementi di un array possono essere modificati utilizzando l’operatore di
assegnazione =. È possibile assegnare nuovi valori agli elementi dell’array in
qualsiasi momento. Ad esempio:
numeri[5] = 100;
4. Iterare su un Array
Per iterare su un array e esaminare o modificare ogni elemento, è possibile
utilizzare un ciclo for. Ad esempio, per stampare tutti gli elementi di un array di
interi:
for (int i = 0; i < 10; i++) {
printf("%d ", numeri[i]);
}

5. Array Multidimensionali
In C, è possibile creare array multidimensionali per rappresentare dati in più di
due dimensioni. Ad esempio, una matrice bidimensionale può essere dichiarata
come segue:

int matrice[3][3];
Questo crea una matrice 3x3 di interi. Per accedere a un elemento della matrice,
è necessario specificare due indici, uno per la riga e uno per la colonna:

matrice[0][0] = 1;
matrice[0][1] = 2;
// ...
6. Iterazione su Array Multidimensionali
Per iterare su un array multidimensionale, è necessario utilizzare cicli nidificati.
Ad esempio, per stampare tutti gli elementi di una matrice 3x3:

for (int riga = 0; riga < 3; riga++) {


for (int colonna = 0; colonna < 3; colonna++) {
printf("%d ", matrice[riga][colonna]);
}
printf("\n");
}
Questo doppio ciclo attraversa tutte le righe e le colonne della matrice,
consentendo di accedere a ciascun elemento.

 Stringhe in C
In C, una stringa è una sequenza di caratteri. Le stringhe sono ampiamente
utilizzate per rappresentare testo e dati di testo nei programmi.
Una stringa in C è un’array di caratteri terminato da un carattere nullo ('\0'). Il
carattere nullo indica la fine della stringa e consente al programma di
determinare la sua lunghezza.
Ecco un esempio di dichiarazione di una stringa:
char miaStringa[] = "Ciao, mondo!";
In questo caso, miaStringa è una stringa di 13 caratteri (12 caratteri visibili più il
terminatore nullo).
1. Creare e Inizializzare una Stringa
Le stringhe possono essere create e inizializzate in vari modi. Ad esempio:

char nome[] = "Alice"; // Inizializzazione diretta


char cognome[10] = "Smith"; // Inizializzazione con dimensione specificata
char saluto[] = {'C', 'i', 'a', 'o', '\0'}; // Inizializzazione carattere per carattere
2. Accesso agli Elementi della Stringa
Per accedere agli elementi di una stringa, è possibile utilizzare l’operatore di
accesso agli indici []. Ad esempio, per accedere al terzo carattere della stringa
nome:
char terzoCarattere = nome[2]; // 'i'
3. Modifica delle Stringhe
Le stringhe in C sono array di caratteri, quindi è possibile modificarle assegnando
nuovi valori ai loro elementi. Tuttavia, è importante notare che la dimensione di
una stringa deve essere gestita con attenzione per evitare buffer overflow.
char messaggio[] = "Ciao!";
messaggio[1] = 'h'; // Ora la stringa diventa "Chao!"
4. Iterazione su una Stringa
Per iterare su una stringa e accedere a ciascun carattere, è possibile utilizzare un
ciclo for. Ad esempio, per stampare ogni carattere di una stringa:
char testo[] = "Hello";
for (int i = 0; testo[i] != '\0'; i++) {
printf("%c ", testo[i]); // Stampa ogni carattere seguito da uno spazio
}
5. Altro
Le stringhe possono contenere anche caratteri speciali, come il carattere di
nuova riga \n, il carattere di tabulazione \t, il carattere di ritorno a capo \r e
altri. Questi caratteri speciali vengono interpretati in modo diverso e sono utili per
formattare il testo.
C fornisce una serie di funzioni utili per lavorare con le stringhe. Ecco alcune di esse:
strlen: Calcola la lunghezza di una stringa.
strcpy: Copia una stringa in un’altra.
strcat: Concatena due stringhe.
strcmp: Confronta due stringhe.
strchr: Cerca un carattere in una stringa.
strstr: Cerca una sottostringa in una stringa.

 Puntatori
In C, un puntatore è una variabile che contiene l’indirizzo di memoria di un’altra
variabile. L’uso dei puntatori è uno dei concetti più importanti e potenti del linguaggio
C.
Contiene un indirizzo di memoria come valore anziché un valore effettivo. Gli indirizzi
di memoria sono numeri interi che rappresentano la posizione di una variabile in
memoria. I puntatori consentono di accedere e manipolare direttamente i dati in
memoria.
1. Creare e Utilizzare un Puntatore
Per dichiarare un puntatore in C, è necessario specificare il tipo di dati a cui il
puntatore farà riferimento.
Ad esempio, dichiariamo un puntatore a un intero:
int *puntatore;
Per assegnare a un puntatore l’indirizzo di memoria di una variabile esistente,
utilizziamo l’operatore di riferimento &. Ad esempio, se abbiamo una variabile numero:
int numero = 42;
int *puntatore = &numero; // Assegna l'indirizzo di 'numero' a 'puntatore'
2. Dereferenziare un Puntatore
Per accedere al valore a cui un puntatore fa riferimento, utilizziamo l’operatore di
dereferenziazione *. Ad esempio:
int valore = *puntatore; // 'valore' contiene ora 42
3. Puntatori ad Array
I puntatori possono essere utilizzati per accedere agli elementi di un array. Ad
esempio:
int numeri [] = {1, 2, 3, 4, 5};
int *puntatore = numeri; // 'puntatore' punta all'inizio dell'array 'numeri'
Ora il puntatore puntatore punta al primo elemento dell’array numeri. Possiamo
accedere agli elementi dell’array utilizzando l’operatore di dereferenziazione e
l’aritmetica dei puntatori:
int primoNumero = *puntatore; // Legge il primo elemento (1)
int secondoNumero = *(puntatore + 1); // Legge il secondo elemento (2)

 Strutture
In C, le strutture, talvolta chiamate anche struct, sono un modo di organizzare i dati in
un singolo oggetto personalizzato. Le strutture consentono di raggruppare variabili di
diversi tipi all’interno di una singola unità, facilitando la gestione e la manipolazione
dei dati.
1. Cosa sono le strutture
Ogni variabile all’interno di una struttura è chiamata campo o membro della struttura.
Questi campi possono essere di qualsiasi tipo di dato, incluso altri tipi di strutture.

Ecco un esempio di dichiarazione di una struttura che rappresenta un punto nel piano:
struct Punto {
int x;
int y;
};
Dopo aver definito una struttura, è possibile dichiarare variabili basate su quella
struttura.
-Ad esempio:
struct Punto punto1;
struct Punto punto2;
Ogni variabile punto1 e punto2 è ora una struttura di tipo Punto e contiene due campi
x e y.
2. Accesso ai Campi della Struttura
Per accedere ai campi di una struttura, utilizziamo l’operatore punto .. Ad esempio,
per assegnare valori ai campi x e y di punto1:
punto1.x = 10;
punto1.y = 20;

 Enumeratori
Gli enumeratori in C sono un tipo speciale di variabile che ci consente di assegnare
nomi significativi a interi. Questi nomi rendono più leggibile il codice sorgente, poiché

forniscono un contesto significativo per i valori numerici.

1. Cosa Sono Gli Enumeratori


Gli enumeratori, talvolta chiamati anche “enum” in breve, sono una collezione di
costanti intere denominate valori enumerati. Ogni valore enumerato è associato a un
nome simbolico che rende più chiaro il suo significato. Gli enumeratori vengono
utilizzati per creare un set limitato di valori che rappresentano uno stato, una scelta o
una condizione.
Ecco come dichiarare un enumeratore in C:
enum GiorniDellaSettimana {
Lunedì,
Martedì,
Mercoledì,
Giovedì,
Venerdì,
Sabato,
Domenica
};
2. Utilizzo degli Enumeratori
Gli enumeratori vengono utilizzati per dichiarare variabili e costanti con i valori
enumerati. Ad esempio:
enum GiorniDellaSettimana oggi;
oggi = martedì;
In questo caso, stiamo dichiarando una variabile oggi di tipo enum
GiorniDellaSettimana e assegnando il valore enumerato martedì ad essa.
3. Personalizzare Valori Enumerati
È possibile personalizzare i valori enumerati assegnando valori specifici ai nomi
simbolici. Ad esempio:
enum Stati {
Spento = 0,
Acceso = 1,
InAttesa = 5,
Errore = -1
};
In questo esempio, stiamo assegnando valori specifici a ciascun nome
simbolico. Spento avrà il valore 0, Acceso avrà il valore 1, InAttesa avrà il valore 5
e Errore avrà il valore -1.

 File
In C, è possibile lavorare con i file utilizzando le librerie standard C. Queste librerie
forniscono una serie di funzioni che consentono di creare, aprire, leggere, scrivere,
appendere, cancellare e manipolare i file.
1. Creare un File
Per creare un nuovo file in C, è possibile utilizzare la funzione fopen(). Ecco un
esempio di come farlo:
#include <stdio.h>

int main() {
// Apre un file chiamato "miofile.txt" in modalità scrittura ("w")
FILE *file = fopen("miofile.txt", "w");
2. Scrittura su un File
Per scrivere dati in un file, è possibile utilizzare la funzione fprintf(). Ecco un esempio:
#include <stdio.h>
int main() {
FILE *file = fopen("miofile.txt", "w");

if (file != NULL) {
fprintf(file, "Questo è un esempio di scrittura su file.\n");
fprintf(file, "Hello, world!\n");
fclose(file);
printf("Dati scritti con successo.\n");
} else {
printf("Impossibile aprire il file per la scrittura.\n");
}
return 0;
}
In questo esempio, stiamo scrivendo due righe di testo nel file “miofile.txt”
utilizzando fprintf()
3. Lettura da un File
Per leggere dati da un file, è possibile utilizzare la funzione fscanf().
4. Aggiungere Dati a un File
Se desideri aggiungere dati a un file esistente senza sovrascrivere i dati esistenti, puoi
utilizzare la modalità di apertura “a” (append) con fopen(). Ad esempio:
FILE *file = fopen("miofile.txt", "a");
5. Eliminare un File
Per eliminare un file in C, è possibile utilizzare la funzione remove().
 Struct
Le strutture del C sostanzialmente permettono l'aggregazione di più variabili, in modo
simile a quella degli array, ma a differenza di questi non ordinata e non omogenea
(una struttura può contenere variabili di tipo diverso). Per denotare una struttura si
usa la parola chiave struct seguita dal nome identificativo della struttura, che è
opzionale. Nell'esempio sottostante si definisce una struttura libro e si crea un'istanza
di essa chiamata biblio:

// dichiarazione della struct


struct libro
{
char titolo[100];
char autore[50];
int anno_pubblicazione;
float prezzo;
};

//dichiarazione dell'istanza biblio


struct libro biblio;
La variabile biblio può essere dichiarata anche mettendo il nome stesso dopo la
parentesi graffa:
È anche possibile inizializzare i valori alla dichiarazione, mettendo i valori (giusti nel
tipo) compresi tra parentesi graffe:
struct libro biblio = {"Guida al C", "Fabrizio Ciacchi", 2003, 45.2};
Per accedere alle variabili interne della struttura si usa l'operatore punto '.'. Una
variabile interna può essere poi manipolata come qualsiasi altra variabile:
// assegna un valore al prezzo del libro
biblio.prezzo = 67.32;
// assegna ad una variabile int l'anno di pubblicazione del libro
int anno = biblio.anno_pubblicazione;
// stampa il titolo del libro
printf ("%s n", biblio.titolo);
Creare nuovi tipi di dato con typedef
Per definire nuovi tipi di dato viene utilizzata la funzione typedef. L'uso di typedef,
combinato con struct ci permette di creare tipi di dato molto complessi, come
mostrato nell'esempio seguente:
typedef struct libro
{
char titolo[100];
char autore[50];
int anno_pubblicazione;
float prezzo;
} t_libro;
t_libro guida = {"Guida al C", "Fabrizio Ciacchi", 2003, 45.2};
In questo modo abbiamo definito un nuovo tipo di nome t_libro, che non è altro che
una struttura; guida è la variabile creata di tipo t_libro. Ora possiamo utilizzare il
nuovo tipo come ogni altro, ad esempio possiamo creare un array di elementi di tipo
t_libro.

t_libro raccolta[5000];
Per accedere agli elementi dell'array, o per inizializzare i valori, è sufficiente utilizzare
l'indice per identificare l'elemento dell'array ed il punto (.) per accedere alle variabili
interne del tipo t_libro.
// assegna un valore al prezzo del 341mo libro
raccolta[340].prezzo = 67.32;
// assegna ad una variabile int l'anno di pubblicazione del 659mo libro
int anno = raccolta[658].anno_pubblicazione;
// stampa il titolo del 23mo libro
printf ("%s n", raccolta[22].titolo);

Potrebbero piacerti anche