首先引进遇到的问题
C 计算内存地址间的差
输出可以发现a[0]与a[1]的地址相差4(int占4个字节),那么有个问题:a[0]与a[1]的地址相差是4吗?


这里需要引入一个概念

直接用内存地址相加减,通常用来计算内存的偏移量。
如果内存地址不是在同一块连续的内存块中,那么计算的结果就是字节数,但是这样的计算基本是无意义的。
如果是同一块连续的内存块中的地址计算,就是数组的偏移量

所以输出printf("%d",&a[1]-&a[0])答案是1,并非4。

相关文章:

  • 2022-12-23
  • 2022-02-10
  • 2021-07-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-10
  • 2021-07-23
  • 2022-12-23
  • 2021-07-20
  • 2022-01-07
  • 2021-11-06
相关资源
相似解决方案