首先你应该明白* 和 ++的优先级是相同的,而且他们的结合性是从又往左的
#include <stdio.h>int main(int argc ,char * argv[])
{int str[]={1,2,3,4,5,6,7,8,9,10};int *p = str;int a = *p++;//a=*p ,p=p+1即a=1,p=&str[1]int b = *++p;//p=p+1,b=*p即p=&str[3],b=*p=str[2]int c = (*p)++;//通*p++,c=*p , p=p+1,即c=str[2],p=&str[3]int d = ++*p;//先取*p的值4再自加printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);return 0;
}
a=1
b=3
c=3
d=5