Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [C++] Frage zu Post- und Preincrement (https://www.delphipraxis.net/105318-%5Bc-%5D-frage-zu-post-und-preincrement.html)

Khabarakh 19. Dez 2007 19:44

Re: [C++] Frage zu Post- und Preincrement
 
Zitat:

Zitat von Die Muhkuh
in C++ anders als in Java berechnet wird?!

Ganz einfach: In modernen, von vornherein durchdachten Sprachen wie C# und Java ist das Verhalten festgelegt. In C++ nicht.
Es macht keinen Sinn, in C++ darüber zu diskutieren oder gar daran zu denken, solch einen Code zu benutzen, da der Standard sich darüber ausschweigt und das Ganze zum russischen Roulette mutiert.
http://weblogs.asp.net/kennykerr/arc...d-C_2300_.aspx

Die Aufgaben am Anfang lassen sich demnach in einem einzigen Satz lösen: "Finger weg!" :stupid:

DeddyH 19. Dez 2007 19:47

Re: [C++] Frage zu Post- und Preincrement
 
Sehe ich auch so, ich muss ganz wild hin und her springen, um 9 herauszubekommen, das kann ja nicht Sinn der Sache sein.

Die Muhkuh 19. Dez 2007 19:50

Re: [C++] Frage zu Post- und Preincrement
 
Nunja, wenn man in C++ die Aufgabe aufspaltet:

Code:
++i // i =2
++i // i =3
i = i + i + i; // i = 3 + 3 + 3
Es ist schon "logisch", was passiert:

Code:
i = i + ++i + ++i;
Zuerst zwei mal inkrementieren (i = 3), dann 3 + 3 + 3 rechnen.

Newbie44 19. Dez 2007 20:00

Re: [C++] Frage zu Post- und Preincrement
 
ok wenn man es so zerlegt dann müsste j) ja auch so ähnlich gehen:
wenn man es aber so zerlegen möchte kommt man fast immer auf 5, irgendwie blick ich jetzt gar nicht mehr durch, wenn ich die j löse dann kommt ja zuerst ++i also dann ist i = 2, dann 2 + 2 + 1

mhmm echt seltsam

Die Muhkuh 19. Dez 2007 20:02

Re: [C++] Frage zu Post- und Preincrement
 
Nein, stimmt schon:

Code:
// Ausgangsberechnung:
i += ++i + ++i;

// Erstmal das += umstellen
i = i + ++i + ++i;

// jetzt i zweimal inkrementieren (dann ist i = 3)
i = i + i + i;
i = 3 + 3 + 3;
i = 9
sorry, das ist Aufgabe i...

Die Muhkuh 19. Dez 2007 20:04

Re: [C++] Frage zu Post- und Preincrement
 
Hier für j:

Code:
// Ausgangrechnung
i += ++i+ i++;

// Wieder das += umsetzen
i = i + ++i + i++;

// i inkrementieren (i = 2 jetzt)
i = i + i + i++;
// Postinkrement bleibt noch
i = 2 + 2 + 2++;
i = 6++;
i = 7;

Newbie44 19. Dez 2007 20:08

Re: [C++] Frage zu Post- und Preincrement
 
Achso ist das gemeint ok das ergibt sinn,

aber das mit den zeigern wird schwerer, es stand noch dsa dabei:
Code:
*j=&i;
i += ++i**j ;
Heißt das dann

nach dem ersten inkrement ist i = 2

also i = 2 + 2 + 2 (da ja j auf i zeigt)

oder ist das zu einfach gedacht?

das finde ich noch viel schwerer irgendwie, man kann diese aufgaben schon richtig fies stellen

Die Muhkuh 19. Dez 2007 20:14

Re: [C++] Frage zu Post- und Preincrement
 
Hmm, kann ich dir jetzt nicht helfen, würde es aber mal so tippen:

Code:
*j=&i;
i += ++i**j;

i = i + ++i **j;
i = 2 + 2 * 2;
i = 6
Was kommt den raus?

Khabarakh 19. Dez 2007 20:48

Re: [C++] Frage zu Post- und Preincrement
 
Zitat:

Zitat von Die Muhkuh
Was kommt den raus?

Schreibt der Standard doch eindeutig: gar nichts. Das Resultat ist nicht definiert. Das einzige, was du gerade untersuchst, sind die Wirren deines lokalen Compilers, jede andere Implementation hat das Recht, deine Berechnungen über den Haufen zu werfen. Von daher: sinnlos, auch nur darüber nachzudenken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz