Dichiarazione ed Inizializzazione delle Variabili in C
Argomenti: tipi di dato fondamentali, allocazione di memoria, sintassi di dichiarazione, inizializzazione e valori spazzatura
In C, ogni variabile deve essere dichiarata prima di essere utilizzata. La dichiarazione comunica al compilatore il tipo di dato che si intende memorizzare e riserva lo spazio necessario nella memoria RAM.
1. I 4 Tipi di Dato Fondamentali
Tipi Primitivi: Caratteristiche, occupazione di memoria e casi d'uso
| Tipo di Dato | Descrizione | Quando Usarlo | Dimensione Tipica |
|---|---|---|---|
int |
Numero intero (senza parti decimali), con segno. | Contatori, cicli, indici di array e aritmetica intera. | 4 Byte (32 bit) |
float |
Numero in virgola mobile (con decimali) a singola precisione. | Quando la precisione non è critica (grafica 3D, misurazioni sensori). | 4 Byte (32 bit) |
double |
Numero in virgola mobile a doppia precisione. | Calcoli scientifici, finanziari o ingegneristici ad alta precisione. | 8 Byte (64 bit) |
char |
Singolo carattere (lettera, cifra, simbolo della tabella ASCII). | Memorizzare singoli caratteri o creare stringhe di testo. | 1 Byte (8 bit) |
2. Sintassi di Dichiarazione
Confronto: Semplice dichiarazione vs Dichiarazione con inizializzazione
Dichiarazione Senza Inizializzazione
Riserva lo spazio in memoria ma non assegna un valore di partenza.
Tipo Nome_Variabile;
La variabile conterrà un valore casuale ("spazzatura") fino al primo assegnamento.
Dichiarazione Con Inizializzazione
Riserva lo spazio in memoria e assegna subito un valore iniziale.
Tipo Nome_Variabile = Valore;
Buona pratica: Garantisce che la variabile sia sicura da leggere fin da subito.
3. Esempi Pratici in C
Codice Sorgente: Dichiarazioni singole, multiple ed inizializzate
| 1 | // 1. Dichiarazioni singole (senza valore iniziale) |
| 2 | int num; |
| 3 | char lettera; |
| 4 | float temperatura; |
| 5 | |
| 6 | // 2. Dichiarazioni multiple sulla stessa riga |
| 7 | int a, b, somma; |
| 8 | double x, y, z; |
| 9 | |
| 10 | // 3. Dichiarazioni con inizializzazione immediata |
| 11 | int conteggio = 15; |
| 12 | char iniziale = 'Z'; // Singolo apice per char |
| 13 | float tempMedia = 25.5f; // La 'f' indica literal float |
| 14 | double piGreco = 3.14159; |
- Punto e virgola (
;): Ogni istruzione di dichiarazione deve terminare obbligatoriamente con;. - Apici singoli (
' '): Per i valori di tipocharsi usano gli apici singoli (es.'Z'), mai le virgolette doppi che servono per le stringhe. - Suffisso
f: È buona norma aggiungerefai numeri decimali di tipofloatper evitare conversioni implicite adouble. - Virgola (
,): Separa più variabili dello stesso tipo dichiarate sulla stessa riga (righe 7-8).
Osservazione: Attenzione ai "Valori Spazzatura"!
In C, se dichiari una variabile locale senza inizializzarla (ad esempio int x;) e provi subito a stampare o usare il suo valore prima di averle assegnato qualcosa, il programma non darà errore in compilazione ma leggerà la sequenza di bit presente in quel momento in memoria RAM. Questo valore imprevisto è detto valore spazzatura (garbage value) e può causare bug imprevedibili!
In sintesi
Argomenti: concetti principali, riepilogo, competenze
- In C ogni variabile deve essere dichiarata prima dell'uso specificandone il tipo di dato e il nome.
- I tipi principali per iniziare sono int, float, double e char.
- Inizializzare una variabile alla nascita evita il rischio di leggere valori spazzatura rimasti in memoria.
- Distinguere la dimensione e l'uso dei 4 tipi fondamentali (int, float, double, char).
- Padroneggiare la sintassi di dichiarazione singola e multipla.
- Comprendere la differenza fondamentale tra semplice dichiarazione e dichiarazione con inizializzazione.