Python "why" questions

Roald de Vries downaold at gmail.com
Sun Aug 15 08:20:53 EDT 2010


On Aug 15, 2010, at 2:16 PM, geremy condra wrote:
> 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;
> }

Interesting! Thanks for the lesson ;-).

Cheers, Roald




More information about the Python-list mailing list