首先要明白()* ++ 优先级的关系
()优先级为最高,接下来是p++后自增,*和++p前自增优先级相同
下面用代码说明三者的区别
# include <stdio.h>
int main (void)
{
int a[5] = {1,2,3,4,5};
int* p = a;
int A;
//现在p指向a[0]
A = *p++;
printf ("*p++ = %d\n",A);
printf ("*p = %d\n",*p);
//A为1 *p为2 *p先赋值给A 再加一
p = a;
A = (*p)++;
printf ("(*p)++ = %d\n",A);
printf ("*p = %d\n",*p);
//A为1 *p为2 *p等价于a[0] 把a[0]的值赋给A a[0]再自增1
p = a;
A = *(p++);
printf ("*(p++) = %d\n",A);
printf ("*p = %d\n",*p);
//A为2 *p为2 *(p++)与*p++等价 ++本来就是优先的
return 0;
}
**---一个小萌新的小破文**