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