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.
Die logischen Operatoren führen logische UND (&&) und logische OR-Vorgänge (||) aus.
Syntax
logical-AND-expression:
inclusive-OR-expression
logical-AND-expression
&&
inclusive-OR-expression
logical-OR-expression:
logical-AND-expression
logical-OR-expression
||
logical-AND-expression
Bemerkungen
Logische Operatoren führen keine üblichen arithmetischen Konvertierungen durch. Stattdessen bewerten sie jeden Operanden in Bezug auf seine Äquivalenz zu 0. Das Ergebnis eines logischen Vorgangs ist entweder 0 oder 1. Das Ergebnis hat den Typ int.
Die logischen C-Operatoren werden unten beschrieben:
| Bediener | BESCHREIBUNG |
|---|---|
&& |
Der Logische UND-Operator erzeugt den Wert 1, wenn beide Operanden ungleich Nullwerte aufweisen. Wenn ein Operand gleich 0 ist, ist das Ergebnis 0. Wenn der erste Operand eines logischen UND-Vorgangs gleich 0 ist, wird der zweite Operand nicht ausgewertet. |
|| |
Der logische OR-Operator führt einen inklusiven OR-Vorgang für seine Operanden aus. Das Ergebnis ist 0, wenn beide Operanden 0 Werte aufweisen. Wenn ein Operand einen Wert ungleich Null aufweist, ist das Ergebnis 1. Wenn der erste Operand eines logischen ODER-Vorgangs einen Wert ungleich Null aufweist, wird der zweite Operand nicht ausgewertet. |
Die Operanden von logischen UND und logischen OR-Ausdrücken werden von links nach rechts ausgewertet. Wenn der Wert des ersten Operanden ausreicht, um das Ergebnis des Vorgangs zu ermitteln, wird der zweite Operand nicht ausgewertet. Dieser Effekt wird als Kurzschlussauswertung bezeichnet. Es gibt einen Sequenzpunkt nach dem ersten Operanden im Ausdruck. Weitere Informationen finden Sie unter Sequence points.
Beispiele
Die folgenden Beispiele veranschaulichen die logischen Operatoren:
int w, x, y, z;
if ( x < y && y < z )
printf( "x is less than z\n" );
In diesem Beispiel wird die printf Funktion aufgerufen, um eine Nachricht zu drucken, wenn x sie kleiner als y und y kleiner als zist. Ist x größer als y, wird der zweite Operand (y < z) nicht ausgewertet, und nichts wird gedruckt. Es ist ein weiterer Fall einer Kurzschlussauswertung, die beim Schreiben logischer Vergleiche berücksichtigt werden muss. Andernfalls kann es Zu Problemen führen, wenn Code auf die Nebenwirkungen der Auswertung des zweiten Operanden basiert.
printf( "%d" , (x == w || x == y || x == z) );
In diesem Beispiel wird das zweite Argument der Funktion als wahr ausgewertet, und der Wert 1 wird gedruckt, wenn x das zwyzweite Argument der Funktion gleich ist.printf Andernfalls wird "false" ausgewertet, und der Wert 0 wird gedruckt. Sobald eine der Bedingungen als wahr ausgewertet wird, wird die Bewertung eingestellt.