# ++post incrementation function in C

Status
Not open for further replies.

#### E-design

does it really matter if i use x++ or x=x+1?

I am not a C person and need some help understanding this.

Say we have two int declared: x=20 and y=35

x = x++ + y++ results in x = 56

Can anyone explain which one (my guess is y) got incremented and why the answer is not 57?

Does it matter if it was written as x = y++ + x++ or not

function in c

the flow goes this way:--

you are having post increment operator, so first the operation will be evaluated and then the incremented operator will perform the action

x = x++ + y++ will go in this way

x = x + y and after this perform x++ and y++
so the result will be
x = 20 + 35 and after this x++ and y++

so finally you will get x = 55 with x++ and y++

FINAL RESULT 55++ and 35++
i.e. x = 56 and y = 36

Hope this helps

### E-design

Points: 2
function of c

So what you are saying is that you first look at the experession (x + y) and ingnoring the ++

Then apply the ++ after the result of (x + y)

So x = x+y = 55
then increment x, which changes x = (x+1) = 56
then y is incremented but not added in the same expression?

How will you apply it in the following statement:

x = ++x + ++y?

Thanks for your help so far!

Re: ++ function in C

Hi E-design

x = ++x + ++y?

The same will be the result.

Please check the C tutorial on operators. First the addition and substraction from left to right is executed and then the multiplication and division will be executed and the rest next

Nandhu

Re: ++ function in C

Nandhu says

nandhu015 said:
The same will be the result.

But this is wrong
you check the tutorial for the pre and post increment operator

Here E-design is using pre increment operator
So the result will go in the following way

first both the variables will be incremented
++x and ++y
x=(20+1) and y=(35+1)

x=21 and y=36
then the addition will takes place
x=21+36
x=57

FINAL RESULT x=57 and y=36

Re: ++ function in C

Putting the ++ BEFORE the variable means increment it then use it.

Putting the ++ AFTER the variable means use it then increment it.

In your first post, I think the L to R is evaluating as:

X = X++
meaning X becomes X and then it is incremented so X is now 21

+ Y++
meaning the value of Y is added to X (added before the increment) 21 + 35 = 56.

Then Y is incremented as well but the addition has already taken place.

Brian.

++ function in C

Everyone is wrong!

x = x++

is undefined in C and change depending on compiler to compiler.

Re: ++ function in C

I know from reading a few books and papers that you should avoid using the same in/decremental operation more than once in the same statement, otherwise you get side effects which varies from compiler to compiler.

http://msdn.microsoft.com/en-us/library/8a425116(VS.80).aspx

Re: ++ function in C

Is this a print error? Should it be "a" instead of "b"?

Status
Not open for further replies.