Introduzione a C: variabili e input standard
Il linguaggio C è uno dei più diffusi e potenti linguaggi di programmazione, ma anche uno dei più complessi e articolati. Per scrivere programmi in C, è necessario conoscere bene i tipi di variabile che si possono usare, e come leggere i dati da standard input, ovvero da tastiera o da file.
Tipi di variabili in C
Tipo di Variabile | Dimensione (byte) | Range di Valori |
---|---|---|
char | 1 | -128 a 127 o 0 a 255 |
unsigned char | 1 | 0 a 255 |
signed char | 1 | -128 a 127 |
int | 2 o 4 | -32,768 a 32,767 o -2,147,483,648 a 2,147,483,647 |
unsigned int | 2 o 4 | 0 a 65,535 o 0 a 4,294,967,295 |
short | 2 | -32,768 a 32,767 |
unsigned short | 2 | 0 a 65,535 |
long | 4 o 8 | -2,147,483,648 a 2,147,483,647 o -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 |
unsigned long | 4 o 8 | 0 a 4,294,967,295 o 0 a 18,446,744,073,709,551,615 |
float | 4 | ±1.2E-38 a ±3.4E+38 fino a sei cifre decimali |
double | 8 | ±2.3E-308 a ±1.7E+308 fino a quindici cifre decimali |
long double | 8 o più (dipende dal sistema) | almeno ±2.3E-308 a ±1.7E+308 fino a quindici cifre decimali |
Uso delle variabili in C: variabili e input standard
Per dichiarare una variabile in C, bisogna specificare il suo tipo e il suo nome, eventualmente seguiti da un valore iniziale. Per esempio:
int x = 10; // dichiara una variabile di tipo intero e le assegna il valore 10
char c = 'a'; // dichiara una variabile di tipo carattere e le assegna il valore 'a'
double d; // dichiara una variabile di tipo reale senza assegnarle un valore
Il tipo di una variabile determina la quantità di memoria che essa occupa, il range di valori che essa può assumere, e le operazioni che si possono fare su di essa. In C, i tipi principali sono:
- int: per rappresentare numeri interi
- char: per rappresentare caratteri alfanumerici
- float: per rappresentare numeri reali a precisione singola
- double: per rappresentare numeri reali a precisione doppia
Esistono anche altri tipi derivati, come gli array, le stringhe, le strutture e i puntatori, che vedremo nelle prossime lezioni.
Per leggere i dati da standard input, si usa la funzione scanf, che ha la seguente sintassi:
scanf(formato, indirizzi);
dove formato è una stringa che specifica il tipo dei dati da leggere, e indirizzi sono gli indirizzi delle variabili dove memorizzare i dati letti. Per esempio:
int x;
char c;
scanf("%d %c", &x, &c); // legge un intero e un carattere e li memorizza nelle variabili x e c
La funzione scanf restituisce il numero di dati letti correttamente. Se ci sono errori di input, restituisce un valore negativo. Per gestire gli errori di input, si può usare un’istruzione condizionale if, come nel seguente esempio:
int x;
if (scanf("%d", &x) != 1) {
printf("Errore di input\n");
exit(1); // termina il programma con codice di errore 1
}
Esempio:
#include <stdio.h>
int main() {
int num1, num2, somma;
printf("Inserisci il primo numero: ");
scanf("%d", &num1);
printf("Inserisci il secondo numero: ");
scanf("%d", &num2);
somma = num1 + num2;
printf("La somma di %d e %d è %d\n", num1, num2, somma);
return 0;
}