On Aug 15, 2010, at 2:16 PM, geremy condra wrote:
On Sun, Aug 15, 2010 at 4:55 AM, Roald de Vries <downa...@gmail.com> wrote:
On Aug 15, 2010, at 1:00 PM, Lawrence D'Oliveiro wrote:

It would be if pointers and arrays were the same thing in C. Only they’re not, quite. Which somewhat defeats the point of trying to make them look
the
same, don’t you think?

How are they not the same?

The code snippet (in C/C++) below is valid, so arrays are just pointers. The only difference is that the notation x[4] reserves space for 4 (consecutive)
ints, and the notation *y doesn't.

int x[4];
int *y = x;

Moreover, the following is valid (though unsafe) C/C++:

int *x;
int y = x[4];

Just to demonstrate that they are different, the following code
compiles cleanly:

int main() {
        int *pointer;
        pointer++;
        return 0;
}

While this does not:

int main() {
        int array[0];
        array++;
        return 0;
}

Interesting! Thanks for the lesson ;-).

Cheers, Roald

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to