Für Operationen zwischen zwei integralen Datentypen stehen bitweise,
logische und Schiebe-Operatoren zur Verfügung, für die C++ zur
Unterstützung beschränkter Zeichensätze auch Schlüsselwörter
reserviert. Auch diese Operatoren (siehe Tafel ) lassen
sich mit dem Zuweisungsoperator =
verbinden.
Die logischen Operatoren sind &&
(oder auch and) und ||
(or) und die Negation
!
. Die Operatoren &&
und ||
haben die besondere
Eigenschaft, daß die Auswertung eines Ausdruckes abgebrochen wird,
sobald dessen Wahrheitswert feststeht (Sequencing). Diese Eigenschaft
teilen sie mit dem Komma-Operator , -- letzterer wird manchmal
benutzt, um komplexe for
-Schleifen zu konstruieren. Sein Wert ist
der Wert des rechtsstehenden Ausdruckes.
double a[20]; unsigned ind[5]; // safe, even if some ind[i] >= 20, since the last expression will not // be evaluated in that case for (int i=0; i < 5 && ind[i] < 20 && a[ind[i]] >= 0 ) sqrt(a[ind[5]]); // sequence operator used to combine two expressions int i, j; for ( i=0, j=2; i < 18; i++, j++ ) a[i] = a[j]; // bizarre but legal use of , i = 5*i, 3; // i is set to 3, 5*i is computed, but discarded
Die (arithmetischen) Vergleichsoperatoren sind
==, !=, <, <=, >
und >=
.
Der Wert eines logischen Ausdruck und das Resultat einer
Vegleichsoperation in C++ sind vom Typ bool
, d.h. entweder
true
oder false
. Dieser Typ ist frei in int
konvertierbar und liefert dann eine 1 (true) oder 0 (false).