24小时热门版块排行榜    

查看: 1703  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

MNXYKT

新虫 (初入文坛)

[求助] a=p++和a=(*p)++的区别 已有1人参与

#include  
main()
{
int p,a;
p=6;
a=p++;
printf("%d,%d",a,p);
}
结果是6,7
#include
main()
{int *p,a=4;
p=&a;
*p=6;
a=(*p)++;
printf("%d,%d",a,*p);
}
结果是7,7;
为什么多了指针,a 的结果会不一样,求解答,

发自小木虫Android客户端
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

无知进化

新虫 (初入文坛)

后缀++是先用后自增1,这个用是在这一步中,这一步可以理解为到分号结束,所以到分号结束之前都是原值,分号结束到下一步时,值就变成原值加1

发自小木虫Android客户端
9楼2017-09-15 01:34:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

15212223817

铁杆木虫 (著名写手)


jjdg: 金币+1, 感谢参与 2017-09-15 00:14:28
第一个p是一个自增变量,a=p++表示先把p的值给a然后p再增加一个1个,第二个p表示指针但是分析跟第一个是一样的,第二个结果应该是66。

发自小木虫Android客户端
2楼2017-09-10 22:08:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sspa9999

至尊木虫 (著名写手)


jjdg: 金币+1, 感谢参与 2017-09-15 00:14:36
第二个p指向a,a和*p它们实际上是一个东西

发自小木虫Android客户端
3楼2017-09-10 22:56:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sspa9999

至尊木虫 (著名写手)

a变成什么,*p也变成一样。反过来也对,*p变了,a也变成一样的值。77是正确答案

发自小木虫Android客户端
4楼2017-09-10 22:59:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见