数组问题:a与&a有的区别

int a[5] = {0,1,2,3,4};这种用法还是比较常见的。

#include <stdio.h>

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

  int *ptr = (int*)(&a+1);,这种代码,目前来讲我是用的比较少,其实就是将a数组后面的一个地址赋值给了指针ptr,指针ptr还是指向int类型的。即a[4]后面的这一个内存。

原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12056931.html