Ja, das sind so Übungsaufgaben, mit denen man Anfänger wie mich wohl gerne ein bisschen in den Wahnsinn treibt.
Aber es stand auch der Hinweis bei, dass man sowas doch bitte nicht machen soll und Inkremente/ Dekremente nur für Zähler (z.B. for-Schelife) benutze.
Airblader
Ich halte die Erklärung auch für plausibel. Das Ergebnis ist übrigens durchaus sprachenabhängig, in Javascript (genauer: Chrome V8) wird so zum Beispiel 5 als Ergebnis ausgegeben.
Der hoffentlich überflüssige Hinweis: Sowas bitte niemals in Produktiv-Code verwenden – ist eine nette Spielerei/Übungsaufgabe, mehr aber auch nicht.
Karlito
Hallo,
das Ergebnis stimmt. Ob die Begründung wirklich stimmt, kann ich nicht genau sagen. Klingt aber so plausibel.
VG,
Karlito
Dragon_Fighter
Inkrement/ Dekrement
Meine Frage:
Hallo, ich habe eine Frage zu den Prä- u. Postoperatoren.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
#include <iostream>
int main () {
int a = 1;
a+= a++ + ++a;
std::cout << a << std::endl;
}
Begründen Sie das Ergebnis!
Meine Ideen:
In Zeile 5 wird die Variable a auf den Wert 1 gesetzt.
Dann in Zeile 7 steht doch (ausgeschrieben)
code:
1:
a= a + a++ + ++a
Ich hätte jetzt gesagt, dass da am Ende a=7 steht.
Erklärung:
1. Schritt:
a=a + a++ =1+1
Also a=2.
2. Schritt
Dann wird a um 1 erhöht, also a=3.
3. Schritt
3 + ++a = 3 + 4
ALSO:
a=7
Ist das so die richtige Erklärung?
Also das Ergebnis stimmt, das habe ich nachgeprüft.