++i statt i++ in for-schleife
-
Hallo,
lese gerade ein Buch über C++ und mir ist aufgefallen, dass der Autor in den forschleifen immer ++i statt i++ benutzt.
for(int i=0; i<5; ++i) cout << i;
Dies hat aber den selben Effekt wie:
for(int i=0; i<5; i++) cout << i;
Welche Methode ist nun die "Richtige"? Und warum ist die das?
Gruß
Royal
-
-
meiner meinung nach ist es bei diesem beispiel egal, ob man die ++i oder i++ sytax verwendet.
man könnte das ganze auch noch anderes verfassen
for(int i=0; i<5;)cout << i++;
hier wird die variable i erst nach der ausgabe inkrementiert. -> 01234
wenn man aber schreibt
for(int i=0; i<5;)cout << ++i;
...wird die variable i vor der ausgabe inkrementiert -> 1234
mfg
-
Hallo,
danke für eure schnellen Antoworten. Habs jetzt begriffen.
Gruß
Royal
-
Hi,
prinzipiell würde ich nur ++i verwenden, und das aus nur aus der Tatsache heraus, dass es tatsächlich schneller ist:Der Ausdruck i++ hat erstmal nur den Wert i, d.h. es wird zwischengespeichert, neuer Wert im Speicher angelegt, dann inkremiert, dann Wert wieder gelöscht usw.
Es entsteht also ein deutlicher Mehraufwand, den man sich bei ++i erspart.Gruß,
Neo
-
NeoInferno schrieb:
prinzipiell würde ich nur ++i verwenden, und das aus nur aus der Tatsache heraus, dass es tatsächlich schneller ist:
Der Ausdruck i++ hat erstmal nur den Wert i, d.h. es wird zwischengespeichert, neuer Wert im Speicher angelegt, dann inkremiert, dann Wert wieder gelöscht usw.
Es entsteht also ein deutlicher Mehraufwand, den man sich bei ++i erspart.Das gilt aber nicht für built-in Typen. Da können Compiler schon vernünftig optimieren.
-
Leute, wozu gibts die Faq?