Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Inkrementieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.04.2004, 12:12 Uhr
~John
Gast


Hallo,
wenn ich einen integer um eins raufsetze schreiben ich:

z1++

Was macht dann ++z1 ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.04.2004, 12:37 Uhr
virtual
Sexiest Bit alive
(Operator)


Heute schon gefaqqt?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.04.2004, 12:48 Uhr
RedEagle



nicht's anderes

C++:
int i = 5;
cout << i++; //ausgegeben wird 5 und i ist 6
//weil: erst i ausgegeben wird und dann mit ++ um eins erhoht wird

////////////////////////////////////////////////////////////////////////////

int j = 5;
cout << ++j; //ausgegeben wird 6 und j ist 6
//weil: erst um eins erhöht wird und dann j ausgegeben wird


--
MFG RedEagle

Dieser Post wurde am 19.04.2004 um 12:49 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.04.2004, 12:53 Uhr
(un)wissender
Niveauwart


Bin mir nicht sicher, aber ist es nicht undefiniert bei cout << i++, ob 5 oder 6 ausgegeben wird(, wenn i == 5).
Naja, zumindest sowas ist undefiniert: cout << i++ << i;
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.04.2004, 14:44 Uhr
~gest
Gast


ich weiß nicht genau wies is, aber ich glaube der unterschied liegt in

C++:
b = ++a;
//bzw.
b = a++;



beim einen wird erst b = a und dann a inkrementiert, beim anderen erst a inkrementiert und dann b = a gemacht
wierum das aber ist weiß ich nicht genau
mfg
CmmS
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.04.2004, 19:43 Uhr
typecast
aka loddab
(Operator)


Mensch Leute. Da macht sich der liebe virtual schon die Mühe einen Beitrag in die FAQ zu schreiben und dann wird da nicht mal nachgeschaut.

Dann gibt er noch den Link zu Antwort und es wird immer noch nicht gelesen.

Warum? Da steht doch alles drin, was man wissen muss. Macht doch bitte die Augen auf.

@(un)wissender:
Berechtigte Frage

Es ist definiert. Der Standard schreibt zwar nicht vor, in welcher Reihenfolge die Argumente von << bearbeitet werden müssen, allerdings muss der Kompiler ja wissenm, welchen Typ ++ zurückliefert. Deshalb muss ++ vor << ausgeführt werden (ich weiß nicht, ob das die richtige Begründung ist, sie sollte aber im wesentlichen dem entsprechen, wie es wirklich abläuft. Vielleicht kann virtual dazu mehr sagen.).
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.04.2004, 08:30 Uhr
virtual
Sexiest Bit alive
(Operator)


@ (un)wissender, typecast:
cout<<i++ ist definiert, es kommt der Wert vor der Erhöhung raus.
Daß der Audruck definiert ist, liegt auf der Hand, denke ich: es gibt nur eine Stelle, wo ein Nebeneffekt auf i wirkt.
Daß der Ausdruck den wert vor der erhöhung ausgibt, liegt einfach an der Rangfolge der Operatoren (++ wird vor << ausgewertet). Das hat allerdings nicht damit zu tun, daß der Kompiler irgendwas auswerten muß, um den Typ von was herauszubekommen, denn der Typ steht ja bereits durch die Deklaration fest. Es ist einfach so festgelegt. Wäre dem nicht so, wäre der Audruck ja gleichbedeutend mit
(cout<<i)++. Also würde man einen op++ benötigen, der einen ostream als parameter hat und das gibt es imho nicht.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.04.2004, 10:13 Uhr
(un)wissender
Niveauwart


Danke für die Aufklärung
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: