Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » formale Sprachen » Inkrement/ Dekrement » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Inkrement/ Dekrement
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Dragon_Fighter
Jungspund


Dabei seit: 10.04.2013
Beiträge: 11

Inkrement/ Dekrement Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.
10.04.2013 20:25 Dragon_Fighter ist offline Beiträge von Dragon_Fighter suchen Nehmen Sie Dragon_Fighter in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

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

VG,

Karlito
10.04.2013 21:00 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.
10.04.2013 21:07 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
Dragon_Fighter
Jungspund


Dabei seit: 10.04.2013
Beiträge: 11

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.
10.04.2013 21:23 Dragon_Fighter ist offline Beiträge von Dragon_Fighter suchen Nehmen Sie Dragon_Fighter in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » formale Sprachen » Inkrement/ Dekrement