running this code:

```
#include <stdio.h>

int main() {
    int x[]={20,30};
    int *p=x;
    ++*p++;
    printf("%d %d\n",x[0],*p);
    return 0;
}

```

the output is 21 30 which is something that doesn't make sense to me because according to C operator precedence the postfix increment comes first though if that was the case in my opinion the output should be 20 31.For the record i am new to programming and it really seems that i cant get the hang of it so sorry if this question is stupid :)