Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!emory!gatech!udel!princeton!njsmu!mccc!pjh From: pjh@mccc.edu (Pete Holsberg) Newsgroups: comp.lang.c Subject: Re: Compound Assignments (was Re: Another error!) Message-ID: <1991Apr8.174951.22448@mccc.edu> Date: 8 Apr 91 17:49:51 GMT References: <1991Apr4.205257.15205@mccc.edu> <1991Apr6.195901.25255@dvorak.amd.com> Organization: The College On The Other Side Of Route One Lines: 29 In article <1991Apr6.195901.25255@dvorak.amd.com> tim@amd.com (Tim Olson) writes: =In article <1991Apr4.205257.15205@mccc.edu> pjh@mccc.edu (Peter J. Holsberg) writes: =| x *= y; =| =| has the "x" part evaluated twice, as in =| =| x = x * y; = =In the second example, "x" is not evaluated twice -- it is evaluated =only once, just as in the first example. The standard says just this =in 3.3.16.2 (Compound assignment): = = Semantics = = A compound assignment of the form E1 op= E2 differs from the = simple assignment expression E1 = E1 op (E2) only in that the = lvalue E1 is evaluated only once. The reference to E1 is ambiguous, as is the entire statement, IMHO. *Which* E1 is evaluated "only once", the E1 op= E2 one or the other? Does it follow that the remaining one is evaluated twice? not at all? Thanks, Pete -- Prof. Peter J. Holsberg Mercer County Community College Voice: 609-586-4800 Engineering Technology, Computers and Math UUCP:...!princeton!mccc!pjh 1200 Old Trenton Road, Trenton, NJ 08690 Internet: pjh@mccc.edu Trenton Computer Festival -- 4/20-21/91