Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Logischer UND-Operator:
Syntax
logical-and-expression
:
equality-expression
logical-and-expression
&&
equality-expression
Hinweise
Der logische UND-Operator (&&
) gibt true
zurück, wenn beide Operanden true
sind und andernfalls false
zurückgeben. 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 UND-Operator müssen nicht denselben Typ aufweisen, sie müssen jedoch ein boolescher, integraler oder Zeigertyp 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 UND-Ausdrucks fortgesetzt wird.
Der zweite Operand wird nur ausgewertet, wenn der erste Operand als true
(nicht null) ausgewertet wird. Diese Auswertung eliminiert die unnötige Auswertung des zweiten Operanden, wenn der Ausdruck der logischen UND-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. Diese Kurzschlussauswertung macht die Zuordnung durch einen Nullzeiger unmöglich.
Operator-Schlüsselwort für &&
C++ gibt and
als alternative Schreibweise für &&
an. In C wird die alternative Schreibweise als Makro im Header <iso646.h> bereitgestellt. In C++ ist die alternative Schreibweise ein Schlüsselwort; die Verwendung von <iso646.h> oder das C++-Äquivalent <ciso646> ist veraltet. In Microsoft C++ ist die Compileroption /permissive-
oder /Za
erforderlich, um die alternative Schreibweise zu aktivieren.
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
Integrierte C++-Operatoren, Rangfolge und Assoziativität
Logische C-Operatoren