i++ Problem
-
heii
lese mich gerade in c++ ein. nun verstehe ich aber Folgendes nicht:
i++ sollte doch zur Variable i 1 dazuaddieren?
so steht es auf jeden fall.
Programm:
#include <iostream> using namespace std; int main() { int i (2), j(8); cout << i++ << endl; cout << i << endl; cout << j-- << endl; cout << --j << endl; std::cin.get(); return 0; }
wieso gibt mir die erste ausgabe dann 2 und nicht drei aus und die zweite 3?
Danke jetzt schon für die Hilfe!
lg
-
Der Postinkrement-Operator (i++) erhöht die Variable, liefert aber den alten Wert dieser Variable zurück.
-
heii danke für die schnelle antwort, aber was bring mir dann das?
-
ein besseres Verständnis für die Sprache C++
Außerdem: Du hattest gefragt, warum du dort 2 als Ausgabe bekommst.
Falls dir meine Antwort nicht ausführlich genug ist: Du mußt unterscheiden zwischen dem Wert eines Ausdrucks und seinen eventuellen Nebenwirkungen. Der Wert des Ausdrucks
i++
ist der bisherige Inhalt der Variablen (und dieser Wert wird auch an den Shift- bzw. Ausgabe-Operator weitergegeben), sein NEbeneffekt ist die Wert-Änderung. Darum hat die Variable i am Ende der Anweisung den Wert 3.
-
danke! jetzt hab ichs verstanden!
schönen abend wünsch ich dir noch!
lh