Doubt in pointers why are we geeting -3 at the end i am geeting -2

#include<stdio.h>
int main(){
int a={10,11,-1,56,67,5,4};
int *p,*q;
p=a;
q=&a[0]+3;
printf(“%d %d %d\n”,(*p)++,(p)++,(++p));
printf(“%d\n”,p);
printf(“%d\n”,(p)++);
printf(“%d\n”,(p)++);
q–;
printf(“%d\n”,(
(q+2))–);
printf(“%d\n”,
(p+2)-2);
printf(“%d\n”,
(p++ -2)-1);
return 0;
}
Screenshot 2024-04-25 113531


Why vare we geeting -3 at the end

What is the correct answer when you compiled the code?

12 11 11
13
13
14
67
54
-3