请问*与++的运算优先级是怎样的,查到的是同一优先级从右向左运算,那么为什么会出现下面的情况?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include <stdio.h>
int main()
{
    int a[] = {1111, 2222, 3333, 4444, 5555};

    int *p = a;

    printf("*p1 = %d\n", *p);
    printf("*p++ = %d\n", *p++);
    p--;
    printf("*p2 = %d\n", *p);
    printf("*(p++) = %d\n", *(p++));
    printf("*++p = %d\n", *++p);
    printf("*(++p) = %d\n", *(++p));
    printf("*p + 1 = %d\n", *p+1);
    printf("*(p+1) = %d\n", *(p+1));
}


结果:

img

如果说像我标题所说,那么第一次 *p++不应该等价为 *(p++),结果不应该是2222吗?

*p++是等价于*(p++),但是后缀++是返回p的原值

p++是先取值,后++呀
而且你两个p++之间又放了个p--,这不又减回去了吗
另:*作为指针标志的时候,和乘法的优先级并不一致

*在这里做指针标识符