重庆瓜皮王 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轮才打印回车。

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

报告相同问题?

悬赏问题

  • ¥15 Python3.5 相关代码写作
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)