许-默-沉 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条)

报告相同问题?

悬赏问题

  • ¥15 oracle数据库查询语句问题
  • ¥15 有没有c++绘制算法的佬们吗救孩一下
  • ¥15 android 蓝牙闪退
  • ¥15 绝缘子污秽comsol仿真参数
  • ¥15 Fatal error in Process MEMORY
  • ¥15 labelme生成的json有乱码?
  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码