Für das folgende Code-Snippet bekomme ich die Ausgabe als 1
. Ich möchte wissen, wie es dazu kam?
10 ist kleiner als 20, was zu 1 führt, und 1 ist kleiner als 5, was zu 1 führt. C verknüpft keine relationalen Operatoren wie einige andere Sprachen.
Dies liegt daran, dass Ihr Code wie folgt ausgewertet wird:
%Vor%C ++ unterstützt keine mehrteiligen Vergleiche wie diese.
%Vor%wird als
interpretiert %Vor% oder das heißt, bestimmen, ob x < y
, dann sehen, ob das boolean ist kleiner als z
.
Es gibt einige Diskussionen über warum das ist in der Softwareentwicklung StackExchange .
Wenn Sie dies versuchen, müssen Sie es stattdessen als zwei separate Vergleiche schreiben, die durch einen booleschen Wert verbunden sind:
%Vor%Tags und Links c operator-precedence