```
#include <stdio.h>

int f1(int *x, int y) {
    y++;
    (*x)++;
    return *x + y;
}

int main() {
    int x = 10, y = 5;
    int z = f1(&x, y);
    printf("x=%d y=%d z=%d\n", x, y, z);
}

```

I get the answer as `x=11 y=5 z=17`.
Can someone explain this?