许-默-沉 2021-05-31 14:30 采纳率: 100%
浏览 36
已采纳

*p++执行四次后为何p地址是自减?为何执行第一次*p++时b结果为9,而不是7?求解

代码如下图

运行结果如下图

 

  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2021-05-31 15:49
    关注

    1、为何自减?

    其实并不是自减,而是在自增。因为你打印出来是负数,32位最大值为0xFFFFFFFF,在有符号时表示-1,所以实际作为地址来说,-431418084在-431418088的后面,你可以打印的时候用%u格式看看就知道了

    2、为何d=*p++之后d为7?

    因为执行顺序是 d = *p;p++,所以d=9,执行完d=*p后,p指针才向后移动

    不知道我是否解释清楚,如果OK,请点击采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?