Lektion 46:Fallstricke bei OperatorenUm Ihnen den Blick in diese Tabelle möglichst lange ganz zu ersparen, werden hier die beiden Besonderheiten aufgeführt, die Sie auswendig wissen sollten: a) Der operator<< ist recht hoch angesiedelt. Insbesondere steht er vor den Vergleichen. Daher geht nicht
weil der Compiler dies als
interpretiert. Dort müssen Klammern gesetzt werden.
b) && steht vor ¦¦
wird der Compiler lesen als
gemeint war aber vom Programmierer
c) verwechseln Sie nicht = mit == Eine Anweisung der Art
wird Sie überraschen, denn für jedes Jahr wird "Schaltjahr" ausgegeben. Der Grund hierfür ist, daß die Zuweisung schaltjahr=true der Variablen schaltjahr den Wert true zuweist, und der Wert dieses Ausdrucks (der neue Wert von schaltjahr) ergibt true. Es passiert also nichts anderes als in
d) Im Allgemeinen ist der genaue Zeitpunkt, zu dem die Seiteneffekte ausgeführt werden nicht definiert! Zum Beispiel ist im Ausdruck
nicht definiert, ob zuerst die Zuweisung oder die Erhöhung um eins ausgeführt wird. Von dieser Ausführungsreihenfolge ist aber der neue Wert von i abhängig. Falls Ihnen Fehler im Text auffallen oder Sie Verbesserungsvorschläge haben, dann schicken Sie mir bitte eine Mail. Ich werde mich dann sofort darum kümmern. [aktuelle Version] [inhalt] [index] [Fehlerkorrektur, Verbesserungsvorschlag] © Volkard Henkel <volkard@normannia.de>, last update: 08/25/00 |