求分析这是什么原因解决办法

求分析这是什么原因int a[3]{1 , 2 , 3}int *pacout*pendl*(p++)endl*(p++)endl*(p++)

求分析这是什么原因
int a[3]={1 , 2 , 3};
int *p=a;
cout<<*p<<endl
<<*(p++)<<endl
<<*(p++)<<endl
<<*(p++)<<endl;


输出是 3 2 1 为什么不是 1 2 3呢

[解决办法]
未定义了 不知道编译器的执行顺序
[解决办法]

探讨
int a[3]={1 , 2 , 3};
int *p=a;
cout<<*p<<endl
<<*(p++)<<endl
<<*(p++)<<endl
<<*(p++)<<endl;


输出是 3 2 1 为什么不是 1 2 3呢