next up previous contents
Next: Weitere Operatoren Up: Operatoren Previous: Arithmetische Operatoren

Vergleichs- und logische Operatoren

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.

Tabelle: Bitmanipulationsoperatoren
| bitor bitweises oder
& bitand bitweises und
^ xor bitweises ausschließendes oder
<< Linksschieben, $ n$-fach
>> Rechtsschieben, $ n$-fach
~ compl Komplement, bitweises not, unär
|= or_eq bitweises oder, Zuweisung nach links
&= and_eq bitweises und, Zuweisung
^= xor_eq bitweises ausschließendes oder, Zuweisung
<<=   Linksschieben, $ n$-fach mit Zuweisung
>>=   Rechtsschieben, $ n$-fach mit Zuweisung


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


next up previous contents
Next: Weitere Operatoren Up: Operatoren Previous: Arithmetische Operatoren
© R.Hilfer et al., ICA-1, Univ. Stuttgart
28.6.2002