KatolaZ <kato...@freaknet.org> writes:

[...]

> and the reason is that arrays in C are just syntactic sugar around
> memory addresses. This has nothing to do with polymorphism or generic
> programming, and is indeed much lower-level and more basic than
> that. Simply put, arrays do not effectively *exist* in C.

This is wrong. Arrays in C represent a finite set of consecutively allocated
objects of a certain type. For historical reasons (compatibility with
BCPL and B[*]), array indexing doesn't exist in C: It's by definition
equivalent to pointer arithmetic an expression with type 'array of T'
are automatically converted to a pointer of type 'pointer to T' pointing
to the first element of the array.

[*] In both languages, an array declaration instructed the compiler to
reserve a certain number of consecutive 'cells' (the only data type
available to both languages) and initialize the declared object with a
pointer to these cell range. The C convention was adopted to enable
structures containing arrays to 'map naturally to the memory of the
machine' while still enabling B programs expecting to get a pointer to
an array when trying to access it to work.

_______________________________________________
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to