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
Bemerkungen
Der logische AND-Operator (&&) gibt zurücktrue, wenn beide Operanden vorhanden sind und andernfalls zurückgegeben false werdentrue. Die Operanden werden implizit vor der Auswertung in typkonvertiert bool , und das Ergebnis ist vom Typ bool. Logische UND weist links-nach-rechts-Assoziivität auf.
Die Operanden für den logischen AND-Operator müssen nicht denselben Typ aufweisen, sie müssen jedoch einen booleschen, integralen oder Zeigertyp aufweisen. Die Operanden sind häufig relationale oder Gleichheitsausdrücke.
Der erste Operand wird vollständig ausgewertet, und alle Nebenwirkungen werden abgeschlossen, bevor die Auswertung des logischen AND-Ausdrucks fortgesetzt wird.
Der zweite Operand wird nur ausgewertet, wenn der erste Operand (nonzero) ausgewertet true wird. Diese Auswertung beseitigt eine unnötige Auswertung des zweiten Operanden, wenn der logische AND-Ausdruck ist false. Sie können diese Kurzschlussauswertung verwenden, um die Ableitung von Nullzeigern zu verhindern, wie im folgenden Beispiel gezeigt:
char *pch = 0;
// ...
(pch) && (*pch = 'a');
Wenn pch null (0) ist, wird die rechte Seite des Ausdrucks nie ausgewertet. Diese Kurzschlussauswertung macht die Zuordnung durch einen Nullzeiger unmöglich.
Operator-Schlüsselwort für &&
C++ gibt and als alternative Schreibweise für &&. In C wird die alternative Schreibweise als Makro im <Iso646.h-Header> 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 Option oder /Za die /permissive- Compileroption 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 Zuordnung
Logische C-Operatoren