*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]