From: utzoo!decvax!harpo!npoiv!hou5f!ariel!houti!hogpc!houxz!ihnp4!ixn5c!inuxc!pur-ee!uiucdcs!uicsl!preece Newsgroups: net.lang.c Title: Re: Re: order of evaluation parse date s - (nf) Article-I.D.: uiucdcs.1639 Posted: Fri Mar 11 16:57:13 1983 Received: Sun Mar 13 12:33:53 1983 #R:houxj:-22000:uicsl:6400004:000:1052 uicsl!preece Mar 11 08:28:00 1983 ***** uicsl:net.lang.c / alice!e / 3:46 pm Mar 3, 1983 i = 4; i = i++; Regardless of whether the increment of the assignment comes first, i == 5 afterwards. Think: If the increment comes first: i++ (so i == 5) i = i (so i == 5) If the assignment comes first: i = i (so i == 4) i++ (so i == 5) --------- Think again: Stack old value of i Store incremented value in i Pop stacked (old) value into i (so i == 4) This is a perfectly reasonable interpretation, given that the whole line (i = i++) is one expression, and therefore re-arrangeable. In fact, many would say it's the RIGHT way, since it means the result of 'a = i++' and 'i = i++' are the same. Clearly K+R says they're all right methods, and the author should avoid ambiguous expressions. [I agree with most of you out there that this topic has had enough attention, but i also think it's worthwhile to keep addressing mis-interpretations in the hopes of as many readers as possible understanding the problem and avoiding such usage.] scott e preece uiuc coordinated science lab