Date: Sun, 31 Jan 1999 00:45:57 -0700 (MST) From: "Kenneth D. Merry" <ken@plutotech.com> To: malartre@aei.ca (Malartre) Cc: hackers@FreeBSD.ORG Subject: Re: some weird C Message-ID: <199901310745.AAA23838@panzer.plutotech.com> In-Reply-To: <36B407F7.1617E743@aei.ca> from Malartre at "Jan 31, 1999 2:36:23 am"
next in thread | previous in thread | raw e-mail | index | archive | help
Malartre wrote...
> This is not really.. for hackers@freebsd.org, but I cannot find the
> answer anywhere.
> main()
> {
> int x=4;
> printf("The value of x is %d\n",x);
> printf("The value of \"x += x++\" is %d\n",x += x++);
> x=4;
> printf("The value of x is %d\n",x);
> printf("The value of \"x += ++x\" is %d\n",x += ++x);
> }
>
> The results are:
>
> The value of x is 4
> The value of "x += x++" is 8
> The value of x is 4
> The value of "x += ++x" is 10
>
> I was expecting 9, not 10.
> since 4+5=9?
> Why 10?
> I also noticed that cc is reading from right to left. Cool.
See operator(7). The ++ operator is evaluated before the += operator.
So, the value of x is changed to 5 by the ++ before it is added to itself.
Ken
--
Kenneth Merry
ken@plutotech.com
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901310745.AAA23838>
