A question on modification of a list via a function invocation

Chris Angelico rosuav at gmail.com
Tue Sep 5 16:24:34 EDT 2017


On Wed, Sep 6, 2017 at 5:48 AM, Stefan Ram <ram at zedat.fu-berlin.de> wrote:
>   Depends on the meaning of "meaningful". In Java, one can
>   inspect and manipulate pointers like in this program for
>   example:
> [chomp code]

That shows that the Java '==' operator is like the Python 'is'
operator, and checks for object identity. You haven't manipulated
pointers at all. In contrast, here's a C program that actually
MANIPULATES pointers:

#include <stdio.h>
void do_stuff(int *x)
{
    printf("x (%p) points to %d\n", x, *x);
    x += 2;
    printf("Now x (%p) points to %d\n", x, *x);
}
int main()
{
    int x[3] = {28, 42, 79};
    do_stuff(x); /* or do_stuff(&x[0]); */
    return 0;
}

You can't do this with Python, since pointer arithmetic fundamentally
doesn't exist. You can in C. Can you in Java?

ChrisA



More information about the Python-list mailing list