重庆瓜皮王 2021-05-08 22:30 采纳率: 87.5%
浏览 16
已采纳

这是C语言。这个代码是正确的,结果也是正确的。但我不理解为什么if会在循环4次后,才换行。我在单步运

这是C语言。这个代码是正确的,结果也是正确的。但我不理解为什么if会在循环4次后,才换行。我在单步运行后,发现代码中p-a[0]的是从1到4。但根据我的理解,a[0]是地址,p=a[0],那p也是地址,假设初始地址是2000,那p++应该是2004,2004-2000=4%4==0,那if函数应该在第二次循环就换行了,为什么会循环四次才换行。而且我把a的元素值改了,单步调试p会把数组的值拿来用,而p-a[0]还是从1到4。希望有大神能解答下。
  • 写回答

1条回答 默认 最新

  • benbenli 2021-05-08 23:10
    关注

    你已经知道“假设初始地址是2000,那p++应该是2004”。

    那么你也容易理解 执行一轮循环 p-a[0] 是1(数据单元差距)而不是4(地址数值差距)。所以是循环4轮才打印回车。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?