C - Costanti e letterali
Le costanti si riferiscono a valori fissi che il programma non può alterare durante la sua esecuzione. Questi valori fissi vengono anche chiamatiliterals.
Le costanti possono essere di uno qualsiasi dei tipi di dati di base come una costante intera, una costante mobile, una costante di carattere o una stringa letterale . Ci sono anche costanti di enumerazione.
Le costanti vengono trattate come variabili regolari tranne per il fatto che i loro valori non possono essere modificati dopo la loro definizione.
Letterali interi
Un valore letterale intero può essere una costante decimale, ottale o esadecimale. Un prefisso specifica la base o la radice: 0x o 0X per esadecimale, 0 per ottale e niente per decimale.
Un valore letterale intero può anche avere un suffisso che è una combinazione di U e L, rispettivamente per unsigned e long. Il suffisso può essere maiuscolo o minuscolo e può essere in qualsiasi ordine.
Ecco alcuni esempi di valori letterali interi:
212 /* Legal */
215u /* Legal */
0xFeeL /* Legal */
078 /* Illegal: 8 is not an octal digit */
032UU /* Illegal: cannot repeat a suffix */
Di seguito sono riportati altri esempi di vari tipi di letterali interi:
85 /* decimal */
0213 /* octal */
0x4b /* hexadecimal */
30 /* int */
30u /* unsigned int */
30l /* long */
30ul /* unsigned long */
Valori letterali a virgola mobile
Un valore letterale a virgola mobile ha una parte intera, una virgola decimale, una parte frazionaria e una parte esponente. È possibile rappresentare valori letterali a virgola mobile in forma decimale o esponenziale.
Mentre si rappresenta la forma decimale, è necessario includere il punto decimale, l'esponente o entrambi; e mentre rappresenta la forma esponenziale, è necessario includere la parte intera, la parte frazionaria o entrambe. L'esponente con segno è introdotto da e o E.
Ecco alcuni esempi di valori letterali a virgola mobile:
3.14159 /* Legal */
314159E-5L /* Legal */
510E /* Illegal: incomplete exponent */
210f /* Illegal: no decimal or exponent */
.e55 /* Illegal: missing integer or fraction */
Costanti di carattere
I caratteri letterali sono racchiusi tra virgolette singole, ad esempio "x" può essere memorizzato in una semplice variabile di char genere.
Un carattere letterale può essere un carattere semplice (ad es. "X"), una sequenza di escape (ad es. "\ T") o un carattere universale (ad es. "\ U02C0").
Ci sono alcuni caratteri in C che rappresentano un significato speciale se preceduti da una barra rovesciata, ad esempio, nuova riga (\ n) o tabulazione (\ t).
-
Qui hai un elenco di tali codici di sequenza di escape:
Sequenza di fuga Senso \\ \ personaggio \ ' ' personaggio \ " " personaggio \? ? personaggio \un Allerta o campanello \ b Backspace \ f Avanzamento modulo \ n Nuova linea \ r Ritorno in carrozza \ t Tabulazione orizzontale \ v Scheda verticale \ ooo Numero ottale da una a tre cifre \ xhh. . . Numero esadecimale di una o più cifre
Di seguito è riportato l'esempio per mostrare alcuni caratteri della sequenza di escape:
#include <stdio.h>
int main() {
printf("Hello\tWorld\n\n");
return 0;
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Hello World
Valori letterali stringa
I valori letterali o le costanti stringa sono racchiusi tra virgolette doppie "". Una stringa contiene caratteri simili ai letterali carattere: caratteri normali, sequenze di escape e caratteri universali.
È possibile suddividere una lunga riga in più righe utilizzando stringhe letterali e separandole utilizzando spazi bianchi.
Di seguito sono riportati alcuni esempi di stringhe letterali. Tutte e tre le forme sono stringhe identiche.
"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
Definizione di costanti
Ci sono due semplici modi in C per definire le costanti:
Utilizzando #define preprocessore.
Utilizzando const parola chiave.
Il preprocessore #define
Di seguito è riportato il modulo per utilizzare il preprocessore #define per definire una costante -
#define identifier value
L'esempio seguente lo spiega in dettaglio:
#include <stdio.h>
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
int main() {
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
return 0;
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
value of area : 50
La parola chiave const
Puoi usare const prefisso per dichiarare le costanti con un tipo specifico come segue:
const type variable = value;
L'esempio seguente lo spiega in dettaglio:
#include <stdio.h>
int main() {
const int LENGTH = 10;
const int WIDTH = 5;
const char NEWLINE = '\n';
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
return 0;
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
value of area : 50
Notare che è una buona pratica di programmazione definire le costanti in MAIUSCOLO.