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).