# Order of Evaluation for pre and post increment operators

Mohnish Khiani
Ranch Hand
Posts: 65
Whats the order of evaluation?

Output :
5 3

What is the right output :
1+2+2=5
(or)
1+1+3=5

vibhor sharma
Greenhorn
Posts: 19
Initially value of i=0;

now , int x=++i
i=0 initial
i=1 final

int x= ++i + i++
i=0 initial i=1 (initial)
i=1 final i=2(final)

int x= ++i + i++ + ++i
i=0 initial i=1 (initial) i=3(initial)
i=1 final i=1 (final; but i=2 will go) i=3 (final;i 's value)

1+1+3=5 (x's value)

....hope that helps

fred rosenberger
lowercase baba
Bartender
Posts: 12228
36
Mohnish Khiani wrote:

What is the right output :
1+2+2=5
(or)
1+1+3=5

Wouldn't it have been easier to run the code yourself and find out?

Mohnish Khiani
Ranch Hand
Posts: 65
i have executed the code and know the output is 5,but i wanted to know how?

That means evaluation is from left to right no matter pre or post operators?

Rob Spoor
Sheriff
Posts: 20707
68
Correct. That code is equivalent to this:
But this also shows how dangerous it can be to use pre and post increment operators inside other statements. It's very easy to loose track of what's going on.