*p++、(*p)++、*++p、++*p有什么不同

可以举例说明么?... 可以举例说明么? 展开
 我来答
HannYoung
推荐于2018-03-04
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
int a[5]={1,2,3,4,5};
int *p = a;
*p++ 先取指针p指向的值(数组第一个元素1),再将指针p自增1;
cout << *p++; // 结果为 1
cout <<(*p++); // 1
(*p)++ 先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2
cout << (*p)++; // 1
cout <<((*p)++) //2
*++p 先将指针p自增1(此时指向数组第二个元素),* 操作再取出该值
cout << *++p; // 2
cout <<(*++p) //2
++*p 先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2)
cout <<++*p; // 2
cout <<(++*p) //2
注意:上面的每条cout输出,要单独输出才能得到后面的结果。
潘良段干宛菡
2020-06-04
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
p代指针,*p++就是把P指向的数字提出再加一,*P++则是指把P的地址加一所指的数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
国彦友彦红
2019-09-22
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
P++是先取p值,然后再p+1,所以*p++,实际上就是*p的值。
++p是先+1再取值,所以*++p,就是*(p+1).
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闽盼愚菁菁
2019-08-25
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
楼上说的对,因为++的优先级高,所以会先算++,*P++的值是*P,但是它已经向下移动了指针,而*++P是先把P加1,然后取*,就是*(P+1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式