Inkrement/ Dekrement

Neue Frage »

Auf diesen Beitrag antworten »
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.
 
Auf diesen Beitrag antworten »
Karlito

Hallo,

das Ergebnis stimmt. Ob die Begründung wirklich stimmt, kann ich nicht genau sagen. Klingt aber so plausibel.

VG,

Karlito
Auf diesen Beitrag antworten »
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. Augenzwinkern
Auf diesen Beitrag antworten »
Dragon_Fighter

Danke!

Ja, das sind so Übungsaufgaben, mit denen man Anfänger wie mich wohl gerne ein bisschen in den Wahnsinn treibt. großes Grinsen

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.
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »