Carsten: Benötigt er ein IQ-Upgrade?

Beitrag lesen

Hi!

a++
NICHT das Gleiche wie
a = a + 1
ist.
wieso?

weil es einfach ein anderer Ausdruck ist. Und je nach Sprache und Definition von a und + kann was unterschiedliches rauskommen.

kurzes Javascriptbeispiel:

<script>
a="2 oder ";

//a++; // 1. Versuch (gibt: NaN, IMHO wäre aber auch 3 ok, je nach Implementation)
a=a+1; // 2.Versuch gibt '2 oder 1'

alert (a);
</script>

Es gibt zwei Unterschiede:
a wird zweimal ausgewertet. Das gibt unterschiedliche Resulte wenn a nicht seiteneffektfrei ist. (in C z.b.: #define a (*b++) )
Der + Operator mit dem rechten Argument 1 muss nicht das gleiche machen wie der increment Operator (s.o.). (Also wenn + in einer Sprache nicht nur für Addition verwendet wird.)

Ausserdem ist natürlich "a=a+1" != "a++" um dem Bauernfängerncharacter der Aussage gerecht zu werden.

Gruss,
 Carsten