Recent C Puzzle & using pointers in arrays
utzoo!decvax!cca!alex
utzoo!decvax!cca!alex
Thu Nov 11 11:37:35 AEST 1982
My apologies to those of you who are seeing this again:
Back when we used to use the 11 cc compiler, it was quite legal to do
the following:
int *foop;
int fooarray[SOMESIZE];
for (foop = fooarray; foop < &fooarray + 1; foop++) {
*foop = somevalue;
}
This worked because the 11 C compiler scaled 1 to the size of the
array when an ampersand was used in front of the array name. Whether
such a construct is TRULY USEFUL in C is an interesting debate, which
I am herewith starting. I claim (for the sake of this debate) that it
is useful to have a general and unambiguous way to reference the end
of any object. While we all know that the semantics of C arrays could
be improved, and the notation used above was mostly a kludge, I find
using pointers in this manner a useful paradigm in programming.
The pcc, of course, dislikes & before arrays. Note that the ampersand
is necessary above, since without it, the scale factor is an element
of the array instead of the whole array.
Alexis Layton
Computer Corporation of America
alex @ CCA-UNIX
decvax!csin!alex
More information about the Comp.lang.c
mailing list