webForumDet fria alternativet

x++ mot ++x

C/C++

5 svar · 205 visningar · startad av nitro2k01

Medlem sedan aug. 20039 340 inlägg
Frågan#1

Vad är skillnaden mellan dessa syntaxer?

Medlem 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.

Medlem 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

Medlem sedan aug. 20039 340 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

Medlem 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

Medlem 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
261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)