++和--的运算优先级比*高。
#include <stdio.h>
#include <stdlib.h>
void printa(int * a)
{
printf("a[]:");
int i;
for(i=0;i<7;i++)
printf("%d ",*(a+i));
printf("\n\n");
}
void seta(int *a)
{
int i;
for(i=0;i<7;i++)
a[i]=i+1;
}
int main()
{
int a[]={1,2,3,4,5,6,7};
int *p;
p=a;
int r=*(p++);///先取值*p赋给r,然后p自增 。这里是后自增
printf("*p1=%d,r=%d\n",*p,r);///2,=a[1]
printa(a);
seta(a);
p=a;
r=*p++;///自增优先级高,先取值*p,然后p自增
printf("*p2=%d,r=%d\n",*p,r);///2,=a[1]
printa(a);
seta(a);
p=a;
(*p)++;///先取值a[0],然后a[0]自增1
printf("*p3=%d,%d\n",*p,a[1]);///2,=a[1]
printa(a);
seta(a);
p=a;
r=*++p;///p先自增,然后取值=a[1]