c语言指针的知识运用

这四个运算*(p++)、 (++p) 、++P、 *++区别是啥呀,能不能解答一下运用这些运算容易出错的点呀

第二个是 * (++p)吧?
第一个 * (p++),是返回p指针指向的地址存储的值,然后p指针再向后移动一位
第二个 * (++p),是先将p指针向后移动一位,再返回p指针指向的地址存储的值
第三个++p只是移动p指针向后一位
第四个 * p++,和第一个是一样的
================
容易出错的点就是p++和++p的关系,以及运算符优先级问题
还有一个有区别的写法是( * p)++和 * p++;

++p先自增再计算,p++先计算再自增,*、()、++混合的时候就关注运算符优先级

1.*(p++)和*(++p)的区别,不就是c++和++c的区别吗,++放前面,先++再取值,放后面,先取值,后++
2.*(p++)和*p++,前者是地址自增后取新地址的值,后者是值自增
3.a*++b这属于数学运算优先级的问题,谁优先级高就先算谁,很明显++的优先级比乘法高所以先算++