*p++是指下一个地址;
(*p)++是指将*p所指的数据的值加一;
/******************解释**********************/
->C编译器认为*和++是同优先级操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样。
->在(*p)++中,由于()的优先级比*和++都高,所以++作用在()内的表达式*p上.
/*****************解释************************/
*(p++)是指是先取*p的值,再使p值+1;
*(++p)是指先对p+1,然后再取*p的值;
++(*p)是指地址p所指的数据+1;
*(p--)是指先取*p所对应的数据,然后使p-1;
*(--p)是指先使p-1,然后在进行*p运算。
/****************解释*************************/
->*(p--) 相当于 a [i--];
->*(++p) 相当于 a [++i];
->*(--p) 相当于 a [--i];
/***************解释**************************/
例:
int x,y,z,l,m,n,q;
int a[]={1,2,3,4,5};
int* p=a;
x=*p++; //执行这一句后x=a[0]=1,p=a+1
y=(*p)++; //执行这一句后,y=a[0]+1=2,p值仍然=a
z=*(p++); //执行这一句话后,z=a[0]=1, p=a+1
l=*(++p); //执行这一句后,l=a[1]=2, p=a+1
m=++*(p) //执行这一句后,m=++a[0]=2 p=a
n=*(p--) //执行这一句后,n=*p-1=1-1=0 p=a
q=*(--p) //执行这一句后,p=p-1=a-1,先让p自减,在进行*运算。q=a[-1]//此处理解即可,数组不存在a[-1]