![]() |
[C++] Frage zu Post- und Preincrement
Hallo,
ich hab diese Beispiele neulich gefunden blicke aber nicht so ganz durch was diese genau machen.
Code:
in den kommentar stehen die ergebnisse.
a) i=1;i = i+ ++i ; cout<<i<<endl; //4
b) i=1;i = i++ +i; cout<<i<<endl; //3 c) i=1;i = i+ i++ ; cout<<i<<endl; //3 d) i=1;i = ++i + ++i;cout<<i<<endl; //6 e) i=1;i = ++i + i++;cout<<i<<endl; //5 f) i=1;i = i+++ ++i; cout<<i<<endl; //5 g) i=1;i += i+ ++i; cout<<i<<endl; //6 h) i=1;i += i+++ i; cout<<i<<endl; //4 i) i=1;i += ++i+ ++i; cout<<i<<endl; //9 j) i=1;i += ++i+ i++; cout<<i<<endl; //7 k) i=1;i += i+++ ++i; cout<<i<<endl; //7 l) i=1;i += i+++ i++; cout<<i<<endl; //5 m) i=1;i += i++ **j ; cout<<i<<endl; //3 n) i=1;i += ++i**j ; cout<<i<<endl; //6 o) i=1;i*= ++*j **j; cout<<i<<endl; //8 p) char x='d'+'A'-'a';cout<<x<<endl; //D das mit dem preincrement und einmal postincrement ist mir etwas rätselhaft. könnte mir das bitte noch jemand erklären? vielen dank im voraus |
Re: [C++] Frage zu Post- und Preincrement
Machen wir es etwas einfacher:
Code:
Beim Preinkrement wird zuerst die Zahl erhöht und dann zugewiesen, beim Postinkrement wird die Zahl zuerst zugewiesen und dann erhöht.
int Zahl1 = 5;
int Zahl2; Zahl2 = ++Zahl1; // -> Zahl2 = 6; // -> Zahl1 = 6; Zahl1 = 5; Zahl2 = Zahl1++; // -> Zahl2 = 5; // -> Zahl2 = 6; |
Re: [C++] Frage zu Post- und Preincrement
Jepp, das kann man auch wunderbar missbrauchen (da gab es doch mal einen Wettbewerb, wer den kürzesten unleserlichen Code schreiben kann).
|
Re: [C++] Frage zu Post- und Preincrement
Japp, man muss ja schon bei den Beispielen von Sebastian genau schauen (ich zumindest), damit man es richtig macht. :mrgreen:
|
Re: [C++] Frage zu Post- und Preincrement
Ich hatte vor 4 Jahren mal einen 4-wöchigen Crashkurs in C, heute würde ich wohl komplett verzweifeln.
|
Re: [C++] Frage zu Post- und Preincrement
ok dann nehmen wir mal das erste beispiel von A)
also am anfang ist i = 1. du hast ja gesagt das preincrement kommt erst, also heißt das ja i ist dann 2, und dann nochmal i dazuzählen das würde 4 ergeben. hab ich das richtig verstanden? wenn ich also solche anweisungen habe:
Code:
dann kommt immer zuerst das preinkrement also erst 5 + 1 wegen den ++i danach kommt i nochmal dazu also 12 und dann noch um eines erweitern also 13.
int i = 5
i = i+ ++i + i++ richtig so? |
Re: [C++] Frage zu Post- und Preincrement
Müssten das nicht 18 sein? 5 + 6 + 6 + 1
|
Re: [C++] Frage zu Post- und Preincrement
oh heißt das also das das postincrement nach allen berechnungen kommt? also wenn ich schreibe:
Code:
das würde dann ja heißen 10 + 1 ?
int i = 4;
i = i+ i++; |
Re: [C++] Frage zu Post- und Preincrement
Ich komme da jetzt auf 9 :lol: . Das liegt aber daran, dass das Postincrement hier greift, da Du es ja derselben Variablen zuweist.
|
Re: [C++] Frage zu Post- und Preincrement
Ich würde auch 9 sagen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz