C语言中定义int *p;那么*(p++)和*p++有区别吗?

 我来答
ryw12403
2008-03-21 · TA获得超过1899个赞
知道大有可为答主
回答量:2501
采纳率:0%
帮助的人:2079万
展开全部
没区别。因为* ++ 都是单目运算符,都是自右至左结合的。所以*p++是先p++ P指向的地址照类型大小加1, 再取*p值。 *(p++)就不说了,一样。
谢应宸
2008-03-21 · TA获得超过2640个赞
知道大有可为答主
回答量:2731
采纳率:66%
帮助的人:2113万
展开全部
有区别
*p++是将p指针指向的地址中的值自增1
*(p++)是将p所指向的地址自增1,也就是指向p地址后面的那个值

比如p原先地址为0x0000,里面放的是1,地址0x0001里面放的是5
执行*p++后返回的是2
执行*(p++)后返回的是5
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luo6620378xu
2008-03-21 · TA获得超过906个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:268万
展开全部
我可以负责任的告诉你。真的没有区别呢!上面的秀才说的很明白了。在我们的教材中有这样的一句话“*p++相当于*(p++),其中的++是作用于p的,而不是作用于*p的”另外我也用编译器验证过了。这样的语法问题我建议你还是多上机子验证。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ddd0e036f
2008-03-21 · TA获得超过232个赞
知道答主
回答量:195
采纳率:0%
帮助的人:0
展开全部
没区别 ++和*是同级的 ++这个符号又是从右向左开始的 所以*p++是先运算p++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巍治魏
2008-03-21 · 超过15用户采纳过TA的回答
知道答主
回答量:126
采纳率:0%
帮助的人:0
展开全部
有区别
先容我举个例子
int i=50,j=60,*p1=&i,*p2+&j;
*p1++等价(*p1++)先得到*p1的值然后再p1=p1+1;
(*p1)++表示中(*p1)即是变量i,表示i=i+1;两者表示的p1的指向不一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式