节选自《C语言深度剖析》

首先看个例子

main()
{
    int a[5]={1,2,3,4,5};
    int *ptr=(int *)(&a+1);
    printf("%d,%d",*(a+1),*(ptr-1)); // 2 5
}

&a: 取数组a的首地址,&a之后+1,是加一个数组的长度,此处是+1*5*sizeof(int),即指向下一个数组首地址 。

a: 数组首元素的首地址,即a[0]的首地址,a+1是加一个元素的长度即 sizeof(int)。

 

相关文章:

  • 2021-09-10
  • 2022-02-11
  • 2021-05-27
  • 2021-08-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-25
  • 2021-11-18
  • 2022-01-31
  • 2021-07-05
  • 2021-11-16
相关资源
相似解决方案