Freigeben über


Logischer AND-Operator: &&

expression && expression

Hinweise

Der logische AND-Operator (&&) gibt den Booleschen Wert mit True an, wenn beide Operanden True sind. Ansonsten ist der Wert False. Die Operanden werden vor der Auswertung implizit in den Typ bool konvertiert. Das Ergebnis ist ein bool-Typ. Das logische AND weist eine Assoziativität von links nach rechts auf.

Die Operanden für den logischen AND-Operator müssen nicht vom gleichen Typ sein, aber sie müssen Ganzzahltypen oder Zeigertypen sein. Die Operanden sind im Allgemeinen relationale oder Gleichheitsausdrücke.

Der erste Operand wird vollständig ausgewertet und alle Nebeneffekte werden abgeschlossen, bevor die Auswertung des logischen AND-Ausdrucks fortgesetzt wird.

Der zweite Operand wird nur dann ausgewertet, wenn der erste Operand als true (ungleich Null) ausgewertet wird. Diese Auswertung eliminiert die unnötige Auswertung des zweiten Operanden, wenn der Ausdruck der logischen AND-Operation gleich false ist. Mithilfe dieser Kurzschlussauswertung können Sie Dereferenzierungen durch NULL-Zeiger verhindern, wie im folgenden Beispiel gezeigt:

char *pch = 0;
...
(pch) && (*pch = 'a');

Wenn pch null (0) ist, wird die rechte Seite des Ausdrucks niemals ausgewertet. Daher ist die Zuweisung durch einen NULL-Zeiger unmöglich.

Operator-Schlüsselwort für &&

Der and-Operator ist die ausgeschriebene Variante von &&. Es gibt zwei Möglichkeiten, wie Sie in Programmen auf den Operator and zugreifen können: Fügen Sie die Headerdatei iso646.h ein, oder kompilieren Sie mit der Compileroption /Za (Spracherweiterungen deaktivieren).

Beispiel

// expre_Logical_AND_Operator.cpp
// compile with: /EHsc
// Demonstrate logical AND
#include <iostream>

using namespace std;

int main() {
   int a = 5, b = 10, c = 15;
   cout  << boolalpha
         << "The true expression "
         << "a < b && b < c yields "
         << (a < b && b < c) << endl
         << "The false expression "
         << "a > b && b < c yields "
         << (a > b && b < c) << endl;
}

Siehe auch

Referenz

Logische Operatoren

C++-Operatoren

C++-Operatoren, Rangfolge und Assoziativität

C-Operatoren (logisch)