请教C语言中(*p)++与*p++与++*p与*++p的区别

如题,一直都不太明白,做题经常做错,还请各位高手帮帮忙!最好能举例说明,万分感谢!... 如题,一直都不太明白,做题经常做错,还请各位高手帮帮忙!最好能举例说明,万分感谢! 展开
 我来答
井钰gQ
2009-03-20 · TA获得超过2480个赞
知道大有可为答主
回答量:1303
采纳率:0%
帮助的人:1494万
展开全部
首先,明确:++的优先级高于*的优先级。
(*p)++
//首先取p所指向的值,给它所指向的值做后缀加,由于是后缀加,所以返回原来表达式的值,即该表达式最后的值为p所指向的值
*p++
//它相当于*(p++),首先指针p后移,由于对指针是后缀加,所以p++返回p没后移时的指针,如果是数组,那么表达式的值为指针当前所指元素(指针没有后移时)的值
++*p
//即相当于++(*p),先取p所指向的值,然后施以前缀加,则该表达式的值为p当前所指对象的值+1的结果。
*++p
//相当于*(++p),指针p先后移,如果是数组,则指向下一个元素,然后++p返回指针下移后的指针。然后*取下移指针后所指向的值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式