001
27.04.2005, 11:33 Uhr
ao
(Operator)
|
Zitat von hahgeh: |
Wie wird das überhaupt ausgewertet
|
Von links nach rechts. Der erste Vergleich (100 > temperatur) ergibt entweder true oder false. Dieses Zwischenergebnis wird dann mit 199 verglichen, dazu muss es nach int umgewandelt werden. Da true 1 und false 0 ist, ist das Ergebnis des zweiten Vergleichs immer false.
Und du hast recht, die Vergleichsoperatoren müssten andersrum sein. Nur wäre dann das Gesamtergebnis immer true.
Die Moral von der Geschicht: Vergleichsketten sind zwar korrekter C-Code, aber sie werden nicht so ausgewertet, wie man es erwartet. Also: Finger davonlassen!
ao |