Programmazione

Tipi Di Dati Fondamentali

Dichiarazione delle variabili con e senza inizializzazione in Linguaggio C: tipi di dato fondamentali (int, float, double, char), sintassi ed errori da evitare.

Durata

20 minuti

Software

Compiler C / GCC / Dev-C++ / VS Code

Linguaggio

Linguaggio C

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

Esempi di Dichiarazione (main.c):
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;
Dettagli Sintattici Importanti:
  • Punto e virgola (;): Ogni istruzione di dichiarazione deve terminare obbligatoriamente con ;.
  • Apici singoli (' '): Per i valori di tipo char si usano gli apici singoli (es. 'Z'), mai le virgolette doppi che servono per le stringhe.
  • Suffisso f: È buona norma aggiungere f ai numeri decimali di tipo float per evitare conversioni implicite a double.
  • 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

  1. In C ogni variabile deve essere dichiarata prima dell'uso specificandone il tipo di dato e il nome.
  2. I tipi principali per iniziare sono int, float, double e char.
  3. Inizializzare una variabile alla nascita evita il rischio di leggere valori spazzatura rimasti in memoria.

Cosa hai imparato
  1. Distinguere la dimensione e l'uso dei 4 tipi fondamentali (int, float, double, char).
  2. Padroneggiare la sintassi di dichiarazione singola e multipla.
  3. Comprendere la differenza fondamentale tra semplice dichiarazione e dichiarazione con inizializzazione.


Linguaggio C, Variabili, Sintassi C, int, float, double, char, Inizializzazione,