++ Operator in for Schlaufe
-
Swordfish schrieb:
Doch, bei
i++;
wird im Gegensatz zu
++i;
ein temporärer Integer erstellt. Also ist ein präfix ++ schneller.
Greetz, Swordfish
Wozu wird ein temporärer Integer erstellt
Also Compilerdesigner die heutzutage noch so eine simple
Anweisung nicht optimieren, gehören in die Wüste geschickt.So etwas einfaches mußten sogar wir dummen Studies im
Compilerbau-Praktikum erkennen (Stichwort: Flow-Chart)
und wegoptimieren.
-
Swordfish schrieb:
...
(1) unbegruendete annahme
(2) wenn dem so /waere/, wuerde es jeder compiler optimieren
-
c.rackwitz schrieb:
(2) wenn dem so /waere/, wuerde es jeder compiler optimieren
Unbewiesene Behauptung!
Du kennst ja nicht Swordfish's kleinen, aber feinen, Wald- und Wiesencompiler,
den er sich im Keller zusammengestöpselt hat.
-
Javaner schrieb:
Es spielt nur dann eine Rolle, wenn das Ergebnis des In- Dekrementoperators
weiterverwendet wird, also.aber trotzdem geben beide schleifen...
for (i = 0; i<8; i++) { printf ("%d \n", i); } for (i = 0; i<8; ++i) { printf ("%d \n", i); }
0...7 aus. merkwürdig, oder?
-
Der Ausdruck wird doch in der Klammer fertig ausgewertet.
Also ist es egal.
-
1310-Logik schrieb:
Der Ausdruck wird doch in der Klammer fertig ausgewertet.
Also ist es egal.falsche antwort
-
net schrieb:
1310-Logik schrieb:
Der Ausdruck wird doch in der Klammer fertig ausgewertet.
Also ist es egal.falsche antwort
Der Ausdruck ++i oder i++ wird nach jedem Durchlauf
des Schleifenkörpers ausgewertet ==> Isse doch egal!
-
net schrieb:
1310-Logik schrieb:
Der Ausdruck wird doch in der Klammer fertig ausgewertet.
Also ist es egal.falsche antwort
Sry. Und wie ist's richtig?
-
1310-Logik schrieb:
net schrieb:
1310-Logik schrieb:
Der Ausdruck wird doch in der Klammer fertig ausgewertet.
Also ist es egal.falsche antwort
Sry. Und wie ist's richtig?
Eben doch so, wie du es geschrieben hast.
-
Javaner schrieb:
1310-Logik schrieb:
net schrieb:
1310-Logik schrieb:
Der Ausdruck wird doch in der Klammer fertig ausgewertet.
Also ist es egal.falsche antwort
Sry. Und wie ist's richtig?
Eben doch so, wie du es geschrieben hast.
nö, so wie du (javaner) es beschrieben hast.
-
Javaner schrieb:
Der Ausdruck ++i oder i++ wird nach jedem Durchlauf
des Schleifenkörpers ausgewertet ==> Isse doch egal!ich schrieb:
Der Ausdruck wird doch in der Klammer fertig ausgewertet.
Also ist es egal.
nach != in ??? deswegen weinst Du?
-
1310-Logik schrieb:
nach != in ??? deswegen weinst Du?
das *nach jedem schleifendurchlauf* ist entscheidend.
-
oder vereinfacht ausgedrückt...
++i i++
Hier spielt die Reihenfolge ++i ungleich i++ eine Rolle, denn im ersten Fall wird der Wert des Operanden vor der Auswertung (z.B. einer Ausgabe) und im zweiten Fall nach der Auswertung erhöht