c语言中*p++和(*p)++有什么区别?

学习 时间:2026-03-30 14:18:24 阅读:4560
c语言中*p++和(*p)++有什么区别?#include void main(){int x=3;int *p,*q;p=&x,q=&x;printf("%d\n",*p++);printf("%d\n",(*q)++);printf("%d\n",x);}输出结果为:3,3,4;我看书中解释:*p++:是先取出*p的值,再使p加1(*p)++:是使*p的值加1.所以我觉得是:3,4,4

最佳回答

魁梧的水蜜桃

落寞的诺言

2026-03-30 14:18:24

我看书中解释:*p++:是先取出*p的值,再使p加1 //p是个指针,给p加1,相当于让p指向了x所在地址的下一个位置,而对于x则是没有任何影响 (*p)++:是使*p的值加1。//*p则是p指向的位置对应的值,题目中是*q,所以此时的*q就是x的值,为3,当输出*q之后,再给*q即x自加1,所以x就变为4

最新回答共有2条回答

  • 专注的睫毛
    回复
    2026-03-30 14:18:24

    我看书中解释:*p++:是先取出*p的值,再使p加1 //p是个指针,给p加1,相当于让p指向了x所在地址的下一个位置,而对于x则是没有任何影响 (*p)++:是使*p的值加1。//*p则是p指向的位置对应的值,题目中是*q,所以此时的*q就是x的值,为3,当输出*q之后,再给*q即x自加1,所以x就变为4

上一篇 用厨房里的什么物质来区分食盐和纯碱?

下一篇 用红磷测定空气中氧气的含量的化学方程式