Le costanti nel linguaggio C
Nel linguaggio C una costante è uno spazio della memoria RAM del computer in cui viene memorizzato un determinato valore numerico o alfanumerico. Si possono definire costanti intere, in virgola mobile o alfanumeriche, singoli caratteri o stringhe.
Qual è la differenza tra variabili e costanti? Il contenuto di una costante non può essere modificata dal programma. Le variabili, invece, possono essere modificate.
Per definire una costante nel linguaggio C posso utilizzare la direttiva #define o la parola chiave const
#define
Per definire una costante con #define, devo scrivere la direttiva seguita dal nome della costante e dal valore.
#define nome valore
Le direttive #define non necessitano del punto e virgola alla fine dell'istruzione.
Generalmente, le direttive vanno messe all'inizio del programma, perché sono elaborate dal compilatore in fase di pre-compilazione.
Un consiglio. Il nome di una costante può essere composto da lettere minuscole o maiuscole. Tuttavia, consiglio di scriverlo in lettere maiuscole per non confondersi con le variabili.
Esempi
Una costante numerica reale
#define PGRECO 3.14
Una costante numerica intera
#define BASE 10
Una costante stringa
#define VERSIONE '2.0b'
Const
Per definire una costante con l'istruzione const, devo indicare il formato dei dati, il nome della variabile e il valore da assegnarlo dopo il simbolo uguale.
const formato nome = valore
Essendo un'istruzione, richiede il simbolo del punto e virgola alla fine della riga.
Esempi
Una costante numerica reale
const float PGRECO=3.14;
Una costante numerica intera
const int BASE=10;
Una costante carattere
const char CATEGORIA='A'
Una costante stringa
const char VERSIONE[4]='2.0b'
Esempi pratici
Esempio 1
In questo codice sorgente ho definito una costante numerica con la direttiva #define.
#include <stdio.h>
#define PGRECO 3.14
int main()
{
printf("Il valore di pi greco è %f", PGRECO);
return 0;
}
L'output del programma è
Il valore di pi greco è 3.140000
Esempio 2
In quest'altro esempio creo la stessa costante con l'istruzione const
#include <stdio.h>
int main()
{
const float PGRECO=3.14;
printf("Il valore di pi greco è %f", PGRECO);
return 0;
}
L'output del programma è lo stesso
Il valore di pi greco è 3.140000
E così via.