请问结构体数组中p->y的值为什么自增1了


#include
struct ord{
    int x,y;
}dt[2]={1,3,5,7}; 
int main(){
    struct ord *p=dt;
    printf("\n%d,%d\n",p->x,p->y);
    printf("%d,%d,%d,%d",p->y,++p->x,++p->y,p->x);
}

请问为什么第二个输出语句里,p->y的值是4而不是3?

img

++p->y这不是在自增吗

struct ord *p=dt; 这句等同于 p = &dt[0]; 那么 p->x 就是 dt[0].x = 1 , ++p->x ==> ++dt[0].x dt[0].x = 2 。