[algogeeks] increment operator...

2012-11-07 Thread Aamir Khan
Let's concentrate on if condition, *if (++k 5 k++/5 || ++k = 8);* is equivalent to (based on operator precedence) *if (((++k 5) (k++/5)) || (++k = 8));* Initially k = 5. Step1 : The first term in if clause i.e, (++k 5) is false which makes the *((++k 5) (k++/5)) *false because all the

[algogeeks] increment operator...

2012-11-06 Thread Anil Sharma
main() { int k = 5; if (++k 5 k++/5 || ++k = 8); printf(%d , k); } the output shud be 8 but it comes out to be 7.why??? as increment operator has higher precedence among them so increment shud be done throughout at first and after then other operators shud be

Re: [algogeeks] increment operator...

2012-11-06 Thread Anil Arya
if (++k 5 k++/5 || ++k = 8); is same as if ++k 5) (k++/5)) || (++k = 8))); (++k 5) (k++/5) in this expression ++k5 returns false(0) ,so there is no need to evaluate right hand side(why?) 2012/11/6 Anil Sharma anilsharmau...@gmail.com main() { int k = 5; if (++k

Re: [algogeeks] increment operator...

2012-11-06 Thread vishal chaudhary
Hi anil first of all when the program starts k = 5 then compiler enters if region then k is incremented before it is compared with 5 ie k = 6 then condition is checked ie ++k 5 and it comes out to be false then as it was end operation compiler does not evaluate the second statement ie k++/5 then