webForumDet fria alternativet

x++ mot ++x

5 svar · 205 visningar · startad av nitro2k01

nitro2k01Medlem sedan aug. 20039 342 inlägg
#1

Vad är skillnaden mellan dessa syntaxer?

UlfTMedlem sedan maj 20018 027 inlägg
#2

Om ++ är innan x, sker inkrementeringen innan. Det förstås lättare med ett konkret exempel:

x++:

x = 3;
y = x++;

Nu är x == 4 och y == 3

Inkrementeringen skedde alltså efter tilldelningen till y.

++x:

x = 3;
y = ++x;

Nu är både x och y == 4. Inkrementeringen skedde innan tilldelningen till y.

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#3

Re: x++ mot ++x

nitro2k01 skrev:

Vad är skillnaden mellan dessa syntaxer?

båda har ökar värdet med x..

Prefix notation will increment the variable BEFORE the expression is evaluated.
Postfix notation will increment AFTER the expression evaluation.

http://www.phim.unibe.ch/comp_doc/c_manual/C/CONCEPT/inc_dec.html

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

Re: Re: x++ mot ++x

Fredde Mannen skrev:

båda har ökar värdet med x..

Jodå, så mycket visste jag sen innan. :p

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#5

Re: Re: Re: x++ mot ++x

nitro2k01 skrev:

Fredde Mannen skrev:

båda har ökar värdet med x..

Jodå, så mycket visste jag sen innan. :p

Misstänkte det! :OO :P :birp

Sang-draxMedlem sedan juli 2002581 inlägg
#6

Det finns även en skillnad i vilken typ uttrycket får:

T tal;
++tal;  //Får typen T&
tal++;  //Får typen const T
133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)