Author | Topic: Operators and assignments |
shatabdi greenhorn |
posted February 16, 2000 06:28 PM
This is a program I saw in Jarowski's book class Sub The o/p is 0(zero). Can anybody pls explain me why ?
|
Milind unregistered |
posted February 16, 2000 08:12 PM
x = (b1|b2&b3^4) ? x++ : --x; The expression can be solved in the following manner: x = (true | ( true & true ) ^ true) ----- 1 x evaluates to true so the answer is 0. Please correct if I am wrong!
|
shatabdi greenhorn |
posted February 16, 2000 09:14 PM
Hi Milind, The expression x = (b1|b2&b3^b4) ? x++ : --x; means if(b1|b2&b3^b4) Now the boolean codn (b1|b2&b3^b4) returns true. So x = x++ should execute. My question is then x should be 1 instead of zero(because of x++)in the o/p. I just don't know why it is showing zero ! shatabdi
|
maha anna bartender |
posted February 16, 2000 09:32 PM
See this line CAREFULLY. x=x++; //x = 0[1] which means the LHS is assigned a value 0 which is happened to be x itself. x is incremented and then again assigned to the pre-increment value.
|
shatabdi greenhorn |
posted February 16, 2000 09:57 PM
Thanks Maha Anna.
|
| | |