在C语言中*p++与(*p)++的区别
作者:Linux公社 发布时间:[ 2016/11/1 11:28:06 ] 推荐标签:C语言 指针
首先*p++等价于*(p++)。至于为什么会等价呢?根据c语言的优先级。*与++的优先级同处在第二级别上。他们的优先级是一样的,又因为处在第二级别的优先级运算符是结合方向是从右到左,所以当出现*p++这样的表达式的时候,根据优先级别相同,并且结合方向是从右到左,所以等价于*(p++)了。那么也是,先将p指针移动到下个p指针所指向元素的地址的下一个地址,然后再对那个地址取值。(*p)++是取p所指向地址的值,然后再将这个值+1.这里举个例子,比如
int x,y,a[]={1,2,3,4,5},*p=a,*q=a;
x=*p++;//执行这一句后x=a[1]=2,p=a+1
y=(*q)++;//执行这一句后,y=a[0]+1=2,q仍然=a
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

sales@spasvo.com