Because of short-circuit evaluation of boolean operators. As soon as
the expression is known to be true, no further evaluation is needed.
In this case ++i is true, and the result of true || anything is true.
Thus "anything" need not be evaluated, and is not in C. Similarly,
short-circuit evaluation occurs with &&: when the result is known to
be false, no further evaluation is needed. Thus, false && anything
will produce false without evaluating "anything".

Dave

On Jul 13, 11:51 am, shady <[email protected]> wrote:
> && has higher precedence than ||
>
> but why does j and k didn't increase after the statement
> l= ++i || j++ && k++;
> got executed ?
>
> On Wed, Jul 13, 2011 at 10:07 PM, sagar pareek <[email protected]>wrote:
>
>
>
> > For more clarification....try this :-
>
> > int i=1,j=1,k=1,l;
> > l= ++i || j++ && k++;
> > printf("%d %d %d %d",i,j,k,l);
>
> > o/p will be 2 1 1 1
> > because as vaibhav wrote the equation evaluate as l= ++i || (j++ && k++);
> > only ++i evaluate not other two increments :)
>
> > On Sun, Jul 10, 2011 at 11:31 PM, rShetty <[email protected]> wrote:
>
> >> Got it Thanks .....
>
> >> On Jul 10, 10:40 pm, vaibhav shukla <[email protected]> wrote:
> >> > associativity comes into play when operators are of same precedence.
>
> >> > On Sun, Jul 10, 2011 at 11:08 PM, vaibhav shukla <
> >> [email protected]>wrote:
>
> >> > > && has higher precedence than ||
> >> > >  the expression is evaluated as
> >> > > z=j || ( k && i );
> >> > > hence the output i.e 1 ;)
>
> >> > > On Sun, Jul 10, 2011 at 11:06 PM, rShetty <[email protected]>
> >> wrote:
>
> >> > >> #include<stdio.h>
> >> > >> int main()
> >> > >> {
> >> > >>  int i=0,j=1,k=1,z=0;
> >> > >>  z = j || k  && i ;
> >> > >>  printf("%d",z);
> >> > >>  return 0;
> >> > >> }
>
> >> > >> The output is 1 for the above program .
>
> >> > >> But according to associativity of logical operators , the evaluation
> >> > >> should be from left to right , But is it taking from right to left ?
> >> > >> What is the exact concept for the program behavior above?
>
> >> > >> --
> >> > >> You received this message because you are subscribed to the Google
> >> Groups
> >> > >> "Algorithm Geeks" group.
> >> > >> To post to this group, send email to [email protected].
> >> > >> To unsubscribe from this group, send email to
> >> > >> [email protected].
> >> > >> For more options, visit this group at
> >> > >>http://groups.google.com/group/algogeeks?hl=en.
>
> >> > > --
> >> > >   best wishes!!
> >> > > Vaibhav Shukla
> >> > >     DU-MCA
>
> >> > --
> >> >   best wishes!!
> >> > Vaibhav Shukla
> >> >     DU-MCA
>
> >> --
> >> You received this message because you are subscribed to the Google Groups
> >> "Algorithm Geeks" group.
> >> To post to this group, send email to [email protected].
> >> To unsubscribe from this group, send email to
> >> [email protected].
> >> For more options, visit this group at
> >>http://groups.google.com/group/algogeeks?hl=en.
>
> > --
> > **Regards
> > SAGAR PAREEK
> > COMPUTER SCIENCE AND ENGINEERING
> > NIT ALLAHABAD
>
> >  --
> > You received this message because you are subscribed to the Google Groups
> > "Algorithm Geeks" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected].
> > For more options, visit this group at
> >http://groups.google.com/group/algogeeks?hl=en.- Hide quoted text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to