Dal C al C++/Utilizzo basilare di librerie/Il tipo "bool": differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Aggiungo: "{{Avanzamento|50%}} " |
Nessun oggetto della modifica |
||
Riga 1:
{{Dal C al C++}}
Il C++ introduce le tre parole-chiave "<code>bool</code>", "<code>true</code>", e "<code>false</code>", usate nel seguente programma:▼
<source lang=cpp>
▲Il C++ introduce le tre parole-chiave "bool", "true", e "false", usate nel seguente programma:
bool a = true;
bool b = false;
Riga 20:
if (a) cout << " OK";
cout << " " << a << b << c << d << e << f;
</source>
Questo programma stampa sulla console: " OK OK OK OK 101111".▼
▲Questo programma stampa sulla console: "<code> OK OK OK OK 101111</code>".
"bool" è un nuovo tipo fondamentale.▼
Il suo nome è l'abbreviazione di "boolean", cioè "booleano" ossia "valore di verità logico".
Line 30 ⟶ 32:
In moltissimi programmi, essendoci l'esigenza di evidenziare che una variabile è usata esclusivamente per memorizzare un valore booleano, si premettono definizioni analoghe alle seguenti:
#define TRUE 1▼
#define FALSE 0▼
typedef int BOOL;▼
<source lang=c>
In C++ tutto ciò non è più necessario, in quanto il tipo "bool" ha proprio lo scopo di rappresentare le variabili che possono contenere solo un bit.▼
Ovviamente, lo spazio effettivamente occupato in memoria da una variabile di tipo "bool" non potrà essere in generale solo di un bit, in quanto nessun processore è in grado di indirizzare il singolo bit.▼
In molte implementazioni, un "bool" occupa un byte, in altre due o più byte.▼
</source>
▲In C++ tutto ciò non è più necessario, in quanto il tipo
Le parole-chiave "true" e "false" rappresentano delle costanti predefinite di tipo "bool".▼
▲Ovviamente, lo spazio effettivamente occupato in memoria da
Ovviamente, "true" significa "vero" o "1", e "false" significa "falso" o "0".▼
▲Le parole-chiave
Nell'esempio sopra, le variabili booleane "a" e "b" sono dichiarate e inizializzate, rispettivamente, a "true" e a "false".▼
▲Nell'esempio sopra, le variabili booleane
Poi viene dichiarata la variabile "c", di tipo "int", ma inizializzata con una variabile di tipo "bool".▼
Tale inizializzazione, così come un analogo assegnamento, è del tutto ammissibile, in quanto il tipo "bool" viene convertito implicitamente in un intero.▼
▲Poi viene dichiarata la variabile
▲Tale inizializzazione, così come un analogo assegnamento, è del tutto ammissibile, in quanto il tipo
Tale operazione è analoga a quella in cui si assegna un carattere a un intero.
Nella conversione, ovviamente, il valore "false" diventa "0", e il valore "true" diventa "1".
Questa conversione
Poi vengono dichiarate le variabili
Tali inizializzazioni sono lecite, e hanno il seguente effetto.
Se l'espressione vale zero, viene assegnato
Se l'espressione ha qualsiasi altro valore, viene assegnato
Se l'espressione
Anche l'inizializzazione di <code>d</code> è anomala, in quanto viene assegnato un valore che non è tra quelli ammissibili, per cui alcuni compilatori segnalano un avvertimento prestazionale anche in questo caso.
Per evitare tali avvertimenti, si può sostituire tali righe con le seguenti:
bool d = 4 != 0;▼
<source lang=cpp>
bool e = 1 != 0;▼
</source>
Consideriamo adesso le espressioni relazionali, cioè quelle formate con gli operatori di confronto <code>==</code>, <code>!=</code>, <code><</code>, <code><=</code>, <code>></code>, <code>>=</code>.
Il risultato di tali espressioni è sempre di tipo <code>bool</code>.
Nell'esempio ci sono poi degli utilizzi delle variabili booleane dichiarate.
Sono tutte corrette e appropriate, tranne quella che contiene l'espressione
Infatti è del tutto pleonastico chiedersi se un'espressione è uguale a
L'espressione è equivalente e altrettanto chiara della semplice espressione
Infine vengono stampate tutte le variabili dichiarate.
La variabile
[[Categoria:Dal C al C++|Tipi fondamentali]]
|