From mboxrd@z Thu Jan 1 00:00:00 1970 To: 9fans@cse.psu.edu From: "Douglas A. Gwyn" Message-ID: <3B491B74.607DAB8D@null.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <20010706055512.42D78199D7@mail.cse.psu.edu>, <200107061654.RAA07880@cthulhu.dircon.co.uk> Subject: Re: [9fans] thread Date: Mon, 9 Jul 2001 08:33:03 +0000 Topicbox-Message-UUID: c39929a2-eac9-11e9-9e20-41e7f4b1d025 Digby Tarvin wrote: > I was aware that the array type was special in that the application of > the '&' operator to it resulted in a change of type but not of value. ? One cannot (meaningfully) apply & to a type, only to a certain kind of expression. When that expression consists of an identifier that has been declared as an object having array type, then in fact &that_identifier is *not* treated specially, according to the C standard, but rather follows the generic rules for the & operator. What is special is the special rule that the unadorned identifier decays, in most contexts, into a pointer to the first element of the array designated by that identifier; this is closely connected with arrays not being first-class objects in C. It is often convenient, but is not natural.