Path: utzoo!mnetor!tmsoft!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!uunet!tdatirv!sarima From: sarima@tdatirv.UUCP (Stanley Friesen) Newsgroups: comp.lang.c Subject: Re: cond. op. on ='s LHS Message-ID: <147@tdatirv.UUCP> Date: 20 Feb 91 18:15:18 GMT References: <11073@pasteur.Berkeley.EDU> <15184@smoke.brl.mil> <326@smds.UUCP> <1196@sheol.UUCP> <331@smds.UUCP> <1210@sheol.UUCP> <335@ptcburp.ptcbu.oz.au> Reply-To: sarima@tdatirv.UUCP (Stanley Friesen) Organization: Teradata Corp., Irvine Lines: 23 In article <335@ptcburp.ptcbu.oz.au> michi@ptcburp.ptcbu.oz.au (Michael Henning) writes: >throopw@sheol.UUCP (Wayne Throop) writes: >> this is irrelevant since the result of * always is [an lvalue]. ^^^^^^^^^^^^^^^^^^^^^ >What about >int array[10][10]; >and an expression > *array >The type of the expression after dereferencing is "array of 10 ints", which >is *not* an lvalue. Yes it is, at least according to the ANSI definition of lvalue. It is just not a *modifiable* lvalue. [Of course this is 'promoted' to a pointer to int in most contexts]. In fact the ANSI standard explicitely states that the result of the unary * operator is an lvalue (with *no* conditions). -- --------------- uunet!tdatirv!sarima (Stanley Friesen)