Thread PERL vs. C: gleicher Code, anderes Ergebnis
(47 answers)
Opened by docsnyder at 2005-09-14 16:16
[quote=jemand,14.09.2005, 19:51]@n = n++;
Vielleicht speichert der compiler das zuzuweisende zwischen(wieso auch immer) weist es zu und tut dann das zwischengespeicherte inkrementieren... ^^ Effektiv wäre das dann n=n; da ja das zu zwischenspeicherne ehh ins Nirvana geht.[/quote] Wie kommst du denn darauf? Das Verhalten des Codes "$n = $n++" in Perl ist doch klar definiert: 1. $n++ wird ausgewertet, $n wird dadurch inkrementiert, der Rückgabewert der Anweisung ist aber der alte Wert von $n 2. $n wird auf den Rückgabewert von Schritt 1 gesetzt, also wieder auf seinen alten Wert. In C ist das aber anders. Wenn ich mich recht entsinne, kann es da in einem Statement nicht zweimal denselben lvalue geben... When C++ is your hammer, every problem looks like your thumb.
|