Python "why" questions

geremy condra debatem1 at gmail.com
Sun Aug 15 08:16:45 EDT 2010


On Sun, Aug 15, 2010 at 4:55 AM, Roald de Vries <downaold at 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;
}

Geremy Condra



More information about the Python-list mailing list