1 |
Hallo, |
2 |
|
3 |
Am Freitag, 5. Januar 2007 18:03 schrieb Jan Kohnert: |
4 |
> Jan Kohnert schrieb: |
5 |
> > Eckard Brauer schrieb: |
6 |
> > > int i = 0; // Initialisierung |
7 |
> > > i = i++; |
8 |
> > |
9 |
> > Wenn ich meinem C-Buch trauen darf (in der Hoffnung, das C++ da nicht |
10 |
> > extrem anders ist), berechnest du das Inkrement und weißt dies im |
11 |
> > Anschluß der Variable zu. Wie die heißt, und ob das in dem Falle dieselbe |
12 |
> > Variable (oder auch Pointer, oder was auch immer), ist doch völlig |
13 |
> > wurscht. Also sollte doch am Ende i=1 sein. |
14 |
> |
15 |
> Da hab ich doch glatt einen Schritt übersehen. :( |
16 |
> |
17 |
> Ist ausgeschrieben ja wirklich ein Inkrement und zwei Zuweisungen, hab ich |
18 |
> aber erst nach Arnolds Bemerkung mitgeschnitten. Nichtsdestotrotz sollte da |
19 |
> IMHO immer noch 1 rauskommen. |
20 |
|
21 |
Das Gegenargument ist vielleicht, daß bei: |
22 |
|
23 |
int i = 0, k; // Initialisierung |
24 |
k = i++; |
25 |
|
26 |
am Ende k == 0 ist, also offensichtlich der Wert der ersten Operation i++ |
27 |
gleich dem ursprünglichen Wert von i war - innerhalb dieser Operation wurde |
28 |
als Seiteneffekt aber auch der Wert von i selbst verändert. k wird dann der |
29 |
Wert der ersten Operation zugewiesen. |
30 |
|
31 |
Eckard |
32 |
|
33 |
-- |
34 |
gentoo-user-de@g.o mailing list |