y > 1)` in C Wie erwartet auswerten? " />
Auswerten verketteter logischer Operatoren: (4 > y > 1) in C
Der Ausdruck (4 > y > 1) in C Wirft Fragen zur Gültigkeit und Bewertung auf Erklärung:
Gültigkeit:
Der Ausdruck selbst ist in C syntaktisch gültig, seine semantische Interpretation kann jedoch unerwartet sein.
Bewertungsreihenfolge :
C wertet logische Operatoren von links nach rechts aus. Daher ist (4 > y > 1) wird analysiert als ((4 > y) > 1).
Semantische Interpretation:
Der Ausdruck ((4 > y) > 1) vergleicht das Ergebnis von (4 > y) mit 1. (4 > y) gibt 1 zurück, wenn y kleiner ist als 4 und sonst 0.
Ergebnis:
Da 0 oder 1 nie größer als 1 ist, ist der Ausdruck ((4 > y) > 1) immer wird als falsch ausgewertet. Mit anderen Worten, die Aussage (4 > y > 1) ist unabhängig vom Wert von niemals wahr y.
Umschreiben:
Ein aussagekräftigerer Ausdruck wäre die Verwendung von logischem UND (&&) anstelle von verketteten Größer-als-Operatoren. Zum Beispiel:
(4 > y) && (y > 1)
Dieser Ausdruck ist nur wahr, wenn sowohl (4 > y) als auch (y > 1) wahr sind.
Ausnahme:
In bestimmten Fällen kann das Verhalten verketteter logischer Operatoren vom erwarteten Ergebnis abweichen. Insbesondere wenn y eine Instanz einer Klasse ist, die > Operator, das Ergebnis kann davon abhängen, wie der Operator implementiert wird.
Das obige ist der detaillierte Inhalt vonWird „(4 > y > 1)' in C wie erwartet ausgewertet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!