。C语言中*(p++) *++p *p++ (*p)++ 这4个有什么区别????

当指针P指向数组中的某个元素是,C语言中*(p++)*++p*p++(*p)++这4个有什么区别???... 当指针P指向数组中的某个元素是,C语言中*(p++) *++p *p++ (*p)++ 这4个有什么区别??? 展开
 我来答
loverBB_h
2011-03-03 · TA获得超过274个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:344万
展开全部
*(p++)返回p指向的值,然后p向前走一步
*++p p向前走一步,然后返回p指向的值
*p++ 取p指向的值,然后把这个值返回,再然后把这个值增1
(*p)++ 取p指向的值,然后把这个值返回,再然后把p指向的内容增1
百度网友fe6dfa6f0
2011-03-03 · 超过23用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:68.5万
展开全部
第一个最终表示的还是一个指针,相当于*(p+1);
第二个也是指针,相当于*(p);
第三个和第一个相同;
第四个表示指针所指向的区域值加1;
想了解他们的含义你的先把符号的优先级搞清楚。 呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sffyygyqtd
2011-03-03 · 超过14用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:43.2万
展开全部
如果a=*(p++)表示将p所指元素中的数赋值给a,然后将p指向下一个元素。
如果a=*++p表示将p指向下一个元素,然后把这个元素中的数赋给我。
*p++同*(p++)
如果a=(*p)++表示将p指向元素中的数赋值给a,然后将这个数加1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旗清心5N
2011-03-03
知道答主
回答量:13
采纳率:0%
帮助的人:7.7万
展开全部
举个例子来说明吧,假设p指向数组的首元素,即p=a,*(p++)作用是先得到*p即a[0],然后使p加1; 对于*p++,由于++和*同优先级,结合方向为自右至左,所以等价于*(p++),作用和*(p++)一样;(*p)++是使p指向的元素值加1,即a[0]+1;*++p和*(++p)作用是一样的,先使p的值加1,即p指向a[1],再做*运算,即得到a[1]的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式