当前位置:   article > 正文

c语言中 *p++ 和 (*p)++ 和 *(p++) 和 *(++p) 和++(*p)和 *(p--)和 *(--p)有什么区别?...

c语言*--p和--p

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

转载于:https://www.cnblogs.com/Jzeng666/p/9290418.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/79721
推荐阅读
相关标签
  

闽ICP备14008679号