Inkrement ++i, i++ und i+=1

Ich bin Anfänger in C++. Was ich verstehe ist, dass:-

i++ ausgeführt wird, den ersten, dann Inkrement, ++i ist das Inkrement zuerst, dann ausführen,i+=1 um 1 erhöht,dann ausführen. Aber in der FOR-Schleife:

for (i=0;i<10;i++)
for (i=0;i<10;++i)

Gibt es wirklich keinen Unterschied in diesen beiden Schleifen oben.

Hier ist ein weiteres zur Berechnung der Summe aller ganzen zahlen von 1 bis 100:

int i=1, sum=0;
while (i<=100)
{
    sum+=i;
    i++;         //i+=1;    ++i;
}
cout<<sum<<" "<<i<<endl;
return 0;

Aber wenn ich die Stelle i++ mit i+=1 oder ++i, Sie alle wieder eine Summe von 5050 und ich der 101. Also ich sehe wirklich nicht, einen Unterschied in Ihnen.

So kann jemand erklären mir das an? Die eine von denen ist, die am meisten genutzt in der Programmierung? Danke!!!!

"i++ ausgeführt wird, den ersten, dann Inkrement, ++i ist das Inkrement zuerst, dann ausführen,i+=1 um 1 erhöht,dann ausführen" - gefährlich falsch. i++ ist "erhöht und auszuwerten, um den ursprünglichen Wert"; es gibt keine Spezifikation von dem, was passiert "ersten".
In der Tat, außer wenn diese Operatoren sind überladen, da operator++ zurückkehren muss, bevor der Ausdruck als ausgewertet. Das ist, warum pre-Inkrement/Dekrement ist oft bevorzugt - es gibt keine Notwendigkeit, erstellen Sie eine Kopie des ursprünglichen Objekts.

InformationsquelleAutor user3858 | 2014-01-30

Schreibe einen Kommentar