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


Anmelden zum Antworten