Win a copy of Design for the Mind this week in the Design forum!

# Urgent...Operator Precedence

Lalitha Chandran
Ranch Hand
Posts: 92
Hello,
I am totally confused with operator precedence.
It is said that expr++ has higher precdence than ++exprlink.
What does this mean?
Let me come down to 2 questions with examples
1.
int x = -1;
int y = ++x + x++;
Will the above line be executed as 1 + -1 = 0
or as 0 + 0 = 0. Because when i try to execute it i will always get the answer as 0 but i don't know which is first evaluated is it ++x or x++. please help!!!
2. Unary operators are evaluated in right to left order. What does this mean...
y = x+++x;
is it equivalent to (x++) + x or x + (++x) .
The answer is same in both cases.
I hope I am clear in my questions.
Thank you
Lalitha

Mika Leino
Ranch Hand
Posts: 56
As for your first question, the precedence has been discussed also in this thread.

Lalitha Chandran
Ranch Hand
Posts: 92
Hi Mika Leino
Just to confirm the answer the first one is executed as
0 + 0 = 0
Thanks
Lalitha

Mika Leino
Ranch Hand
Posts: 56
Yes, that is correct.

Thomas Paul
mister krabs
Ranch Hand
Posts: 13974

Lalitha Chandran
Ranch Hand
Posts: 92
I have my exams in a few days. And I was giving one of the mock exams and got this one wrong. And I got a bit tensed... :roll:

Gopal Shah
Ranch Hand
Posts: 65
Originally posted by Lalitha Chandran:
Hello,
2. Unary operators are evaluated in right to left order. What does this mean...
y = x+++x;
is it equivalent to (x++) + x or x + (++x) .
The answer is same in both cases.
I hope I am clear in my questions.
Thank you
Lalitha

In JLS, it is mentioned that "While translating Unicode stream into sequence of input elements(white spaces, comments and tokens), the longest possible translation is used at each step.
As such x+++x, will always be evaluated as (x++) + x

Chao Chihwai
Greenhorn
Posts: 5