C-logische Operatoren

Die logischen Operatoren führen logische AND (&&) und Operationen des || (OR) aus.

Syntax

  • Logisch-UNd Begriff:
    Inklusiv-ODErAusdruck

    Logisch-UNdAusdruck*&&** Inklusiv-ODEr* Ausdruck

  • Logisch-ODEr Begriff:
    Logisch-UNdAusdruck

    Logisch-ODErAusdruck || Logisch-UNdAusdruck

Logische Operatoren führen nicht die üblichen arithmetische Konvertierungen aus.Stattdessen werten sie jeden Operanden hinsichtlich ihrer Übereinstimmung bis 0 aus.Das Ergebnis eines logischen Vorgangs ist entweder 0 oder 1.Der Typ des Ergebnisses intist.

Die C-logischen Operatoren sind im Folgenden beschrieben:

Operator

Beschreibung

&&

Der Operator erzeugt der logischen AND-Operation den Wert 1, wenn beide Operanden Werte ungleich 0 (null) haben.Wenn einer der beiden Operanden gleich 0 ist, ist das Ergebnis 0.Wenn der erste Operand eines der logischen AND-Operation gleich 0 ist, wird der zweite Operand nur ausgewertet.

||

Der logische Operator OR führt eine inklusive OR-Operation für seinen Operanden aus.Das Ergebnis ist 0, wenn beide Operanden Wert 0 haben.Wenn einer der beiden Operanden einen Wert ungleich 0 (null) aufweist, entspricht das Ergebnis 1.Wenn der erste Operand einer logischen OR-Operation ein Wert ungleich 0 (null) hat, wird der zweite Operand nur ausgewertet.

Die Operanden des logischen UND und der logischen Oder-Ausdrücke werden von links nach rechts ausgewertet.Wenn der Wert des ersten Operanden genug ist, um das Ergebnis des Vorgangs zu bestimmen, wird der zweite Operand nur ausgewertet.Dies wird aufgerufen „Kurzschlussauswertung“. Es gibt einen Sequenzpunkt nach dem ersten Operanden.Weitere Informationen finden Sie unter Sequenzpunkte .

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 Meldung auszugeben, wenn x kleiner ist als y und y kleiner als zist.Wenn x größer als yist, wird der zweite Operand (y < z) ausgegeben wird und keine nicht ausgewertet.Beachten Sie, dass dies Probleme verursachen könnte, wenn der zweite Operand Nebeneffekte hat, die aus einem anderen Grund gebaut werden.

printf( "%d" , (x == w || x == y || x == z) );

In diesem Beispiel x wenn entweder gleich w, yoder zist, wertet das zweite Argument für die Funktion ausgeführt printf auf true und der Wert 1 wird ausgegeben.Andernfalls wird er auf false festgelegt, und der Wert 0 wird ausgegeben.Sobald eine der Bedingungen zum Ergebnis true ausgewertet wird, wird die Auswertung an.

Siehe auch

Referenz

AND-Operator: &&

Logisches beim: ||