What Amit told is exactly correct. But I would like to know the
expression evaluation order of this in gcc and turboc


Arun
On Aug 3, 6:15 pm, Arun Vishwanathan <[email protected]> wrote:
> @amit:+1
>
> On Wed, Aug 3, 2011 at 3:14 PM, amit karmakar 
> <[email protected]>wrote:
>
>
>
>
>
>
>
> > You are wrong.
> > The above program invokes undefined behavior. Read the standard
> > language draft to know about sequence points, side effects and
> > undefined behavior.
>
> > Between a previous and next sequence point a variable's value cannot
> > be modified twice.
> > c-faq should be quite useful
> >http://c-faq.com/~scs/cgi-bin/faqcat.cgi?sec=expr
> >  On Aug 3, 5:20 pm, Puneet Gautam <[email protected]> wrote:
> > > As we know:
> > >                      In an expression, if pre n post occur
> > > simultaneously, pre inc the value then n there only n post executes it
> > > after that expression...and expression evaluates right to left...
>
> > >  Also, the value of a variable in  an expression can be modified
> > > multifold times...there is no restriction on dat...
>
> > > Here in this code:
> > > Print statement No.:
>
> > > 1.  i++*i++ is equivalent to:
> > >          output i*i(7*7)
> > >        followed by
> > > i=i+1;
> > > i=i+1;
> > > prior to 2nd printf statement..that makes i=9
>
> > > 2. i++*++i
> > >     expn. evaluates right to left: i inc. by one due to pre..
> > > i is now 10 .
> > > output i*i(10*10)
> > > i=i+1 (due to post inc., it inc. the value after the output)
> > >  i is now 11
>
> > > 3. ++i*i++
> > >      right to left evaluation, but post inc. increases value only after
> > output..
> > > coming to ++i in the expn., i inc. to 12
> > > output: 12*12
> > > i=i+1(due to postinc.)
> > >  i is now 13
>
> > > 4. ++i*++i
> > > both pre inc operators, order of evaluation doesnt ,matter:
> > > i=i+1
> > > i=i+1
> > > output: 15*15
>
> > > i finishes at 15
>
> > > Hence the output:
> > > 49
> > > 100
> > > 144
> > > 225
>
> > > I think i made it clear..
> > > Feel free to point any loopholes..
>
> > > Thanks.
>
> >  > On 8/3/11, ankit sambyal <[email protected]> wrote:
>
> > > > Its compiler dependent. Acc. to the C standard an object's stored value
> > can
> > > > be modified only once in an expression.
>
> > > > --
> > > > 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.
>
> > --
> > 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.

-- 
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