Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
---- formale Sprachen (http://www.informatikerboard.de/board/board.php?boardid=12)
----- Inkrement/ Dekrement (http://www.informatikerboard.de/board/thread.php?threadid=1453)


Geschrieben von Dragon_Fighter am 10.04.2013 um 20:25:

  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.



Geschrieben von Karlito am 10.04.2013 um 21:00:

 

Hallo,

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

VG,

Karlito



Geschrieben von Airblader am 10.04.2013 um 21:07:

 

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



Geschrieben von Dragon_Fighter am 10.04.2013 um 21:23:

 

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.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH