bool
-Typ
Der Typ bool
speichert einen Wahrheitswert (true
, false
).
Dieser Typ ist jedoch erst in C++ verfügbar. Sowohl in C++ als auch in C
können jedoch auch Integer-Werte, Fliesskommawerte sowie Pointer als
boolsche Werte verwendet werden: Ein Wert, der 0
representiert, wird als false
aufgefasst, alle anderen Werte werden als true
interpretiert.
Hello World! Hello World again! |
#include <cstdio> int main(){ bool printmessage = true; if(printmessage){printf("Hello World!\n");}; if(1234){printf("Hello World again!\n");}; return 0; } |
Details
Boolsche Werte werden für logische Operatoren sowie die Auswertungen von Bedingugnen verwendet. Sie folgen den Regeln der binären Logik.
Es ist zu beachten, dass sowohl in anderen Programmiersprachen als auch umgangssprachlich die Bezeichnung boolean
geläufig ist, in C++ existiert jedoch nur das Keyword bool
.
Auch wenn der Werteumfang des bool
-Typs in einem Bit gespeichert werden könnte, benötigt er normalerweise mindestens 1 Byte. Der Wert false
wird mit dem Wert 0
codiert und der Wert true
mit einem Wert ungleich 0
, normalerweise mit 1
.
Es ist zu beachten, dass bei der Interpretation von Fliesskommatypen
als boolsche Werte keine arithmetische Umwandlung stattfindet, womit
auch Werte wie 0.1
als nicht-Null interpretiert werden. Ein jeglicher Wert, der nicht 0
representiert, wird als true
interpretiert.
b is true d is true f is true |
int a = 0; int b = 12345; if(a){printf("a is true\n");} if(b){printf("b is true\n");} float c = 0.0; float d = 0.1; if(c){printf("c is true\n");} if(d){printf("d is true\n");} int* e = NULL; int* f = &a; if(e){printf("e is true\n");} if(f){printf("f is true\n");} |