From: bobduff@world.std.com (Robert A Duff)
Subject: Re: Warning: Religious naming convention discussion :-) [was: assign help!!]
Date: 1997/05/13
Date: 1997-05-13T00:00:00+00:00 [thread overview]
Message-ID: <EA4J04.LpH@world.std.com> (raw)
In-Reply-To: dewar.863495951@merv
In article <dewar.863495951@merv>, Robert Dewar <dewar@merv.cs.nyu.edu> wrote:
>Why are C arrays very low-level notions?
Because:
1. They don't carry their length (or bounds) with them. You have to
pass this information "by hand", as a separate thing.
2. There are no "whole array" operations, such as assignment and
comparison. (Yes, there are library functions for these, but they don't
operate on whole arrays -- they take pointer-to-first-element and
size/length parameters separately.)
3. You can't pass an array as a parameter -- you have to pass a pointer
to the first component, instead. (Or, looking at it a different way, an
array *is* a pointer to the components. C is pretty confused on this
point.) And having done that, there's no way to tell, in the language,
whether a given formal parameter of type t* is pointing to a t, or to
the first element of an array of t's.
4. Array indexing is defined in terms of pointer arithmetic.
(Well, I admit this is a rather weak reason.)
5. The lower bound is always zero, rather than whatever makes sense to
the programmer. E.g. if you want a table that maps the numbers A..B
onto something-or-other, you have to subtract off A "by hand"
All of the above give me the feeling that a C array is, conceptually, a
pointer to a hunk of contiguous storage. That's a low-level,
machine-oriented, notion.
>I agree they are often used this way, but I don't see this from the standard.
- Bob
next prev parent reply other threads:[~1997-05-13 0:00 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-05-05 0:00 assign help!! Ivan Gou
1997-05-06 0:00 ` Michael F Brenner
1997-05-07 0:00 ` Charles H. Sampson
1997-05-08 0:00 ` Warning: Religious naming convention discussion :-) [was: assign help!!] John G. Volan
1997-05-09 0:00 ` Kevin Cline
1997-05-09 0:00 ` John G. Volan
1997-05-09 0:00 ` Jay Martin
1997-05-09 0:00 ` John G. Volan
1997-05-09 0:00 ` Jeff Carter
1997-05-09 0:00 ` John G. Volan
1997-05-10 0:00 ` Kaz Kylheku
1997-05-10 0:00 ` John G. Volan
1997-05-10 0:00 ` Robert Dewar
1997-05-10 0:00 ` John G. Volan
1997-05-11 0:00 ` Robert Dewar
1997-05-12 0:00 ` John G. Volan
1997-05-12 0:00 ` Robert I. Eachus
1997-05-13 0:00 ` Robert Dewar
1997-05-16 0:00 ` Robert I. Eachus
1997-05-17 0:00 ` Robert Dewar
1997-05-13 0:00 ` John G. Volan
1997-05-11 0:00 ` Kevin Cline
1997-05-11 0:00 ` Robert Dewar
1997-05-12 0:00 ` John G. Volan
1997-05-12 0:00 ` Robert Dewar
1997-05-16 0:00 ` Wayne Magor
1997-05-16 0:00 ` John G. Volan
1997-05-16 0:00 ` Robert Dewar
1997-05-18 0:00 ` Nick Roberts
1997-05-20 0:00 ` naming convention discussion Peter Hermann
1997-05-14 0:00 ` Warning: Religious naming convention discussion :-) [was: assign help!!] Ben Brosgol
1997-05-14 0:00 ` naming convention: trailing underscore Peter Hermann
1997-05-14 0:00 ` John G. Volan
1997-05-15 0:00 ` Michael F Brenner
[not found] ` <dewar.863717431@merv>
1997-05-16 0:00 ` naming convention discussion Peter Hermann
1997-05-16 0:00 ` Robert Dewar
1997-05-20 0:00 ` Peter Hermann
1997-05-16 0:00 ` Warning: Religious naming convention discussion :-) [was: assign help!!] Robert A Duff
1997-05-18 0:00 ` Underscores in identifiers (was: Warning: Religious naming convention discussion :-) Ben Brosgol
1997-05-17 0:00 ` Warning: Religious naming convention discussion :-) [was: assign help!!] Arthur Schwarz
1997-05-17 0:00 ` Robert Dewar
1997-05-17 0:00 ` John G. Volan
1997-05-18 0:00 ` Andrew Dunstan
1997-05-18 0:00 ` Nick Roberts
1997-05-19 0:00 ` John G. Volan
1997-05-19 0:00 ` John G. Volan
1997-05-10 0:00 ` Aaron Metzger
1997-05-11 0:00 ` Simon Wright
1997-05-11 0:00 ` Robert Dewar
1997-05-11 0:00 ` Robert A Duff
1997-05-12 0:00 ` Robert Dewar
1997-05-12 0:00 ` Robert A Duff
1997-05-12 0:00 ` Robert Dewar
1997-05-13 0:00 ` David L Brown
1997-05-13 0:00 ` W. Wesley Groleau (Wes)
1997-05-14 0:00 ` Robert Dewar
1997-05-13 0:00 ` Robert A Duff [this message]
1997-05-13 0:00 ` Kaz Kylheku
1997-05-14 0:00 ` Robert A Duff
1997-05-14 0:00 ` Kevin Cline
1997-05-14 0:00 ` Robert Dewar
1997-05-13 0:00 ` Robert Dewar
1997-05-14 0:00 ` Ole-Hjalmar Kristensen FOU.TD/DELAB
1997-05-11 0:00 ` John G. Volan
1997-05-12 0:00 ` Kaz Kylheku
1997-05-12 0:00 ` John G. Volan
1997-05-12 0:00 ` W. Wesley Groleau (Wes)
1997-05-12 0:00 ` John G. Volan
1997-05-13 0:00 ` W. Wesley Groleau (Wes)
1997-05-13 0:00 ` John G. Volan
1997-05-14 0:00 ` naming convention discussion Peter Hermann
1997-05-14 0:00 ` John G. Volan
1997-05-14 0:00 ` Peter Hermann
1997-05-14 0:00 ` John G. Volan
1997-05-15 0:00 ` Peter Hermann
1997-05-15 0:00 ` W. Wesley Groleau (Wes)
1997-05-14 0:00 ` Warning: Religious naming convention discussion :-) [was: assign help!!] Do-While Jones
1997-05-14 0:00 ` John G. Volan
1997-05-14 0:00 ` John G. Volan
1997-05-15 0:00 ` Tangent to Religious naming convention discussion W. Wesley Groleau (Wes)
1997-05-15 0:00 ` John G. Volan
1997-05-14 0:00 ` Warning: Religious naming convention discussion :-) [was: assign help!!] Stephen Leake
1997-05-12 0:00 ` Jeff Carter
1997-05-12 0:00 ` John G. Volan
1997-05-09 0:00 ` John G. Volan
1997-05-10 0:00 ` Robert Dewar
1997-05-10 0:00 ` John G. Volan
1997-05-11 0:00 ` Robert Dewar
1997-05-12 0:00 ` John G. Volan
1997-05-12 0:00 ` W. Wesley Groleau (Wes)
1997-05-12 0:00 ` W. Wesley Groleau (Wes)
1997-05-12 0:00 ` John G. Volan
1997-05-11 0:00 ` Doug Smith
1997-05-12 0:00 ` Tom Moran
1997-05-16 0:00 ` Wayne Magor
1997-05-16 0:00 ` John G. Volan
1997-05-17 0:00 ` Kevin Cline
1997-05-19 0:00 ` Doug Smith
1997-05-12 0:00 ` W. Wesley Groleau (Wes)
1997-05-12 0:00 ` John G. Volan
1997-05-12 0:00 ` John G. Volan
1997-05-10 0:00 ` assign help!! Simon Wright
1997-05-14 0:00 ` Nick Roberts
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox