#include <stdio.h>
int main()
{
int a[5]={1,2,3,4,5};
int *ptr1=(int *)(&a+1);
int *ptr2=(int *)((int)a+1);
printf("%x,%x",ptr1[-1],*ptr2);
return 0;
}
#include <stdio.h>
int main()
{
int a[5]={1,2,3,4,5};
int *ptr1=(int *)(a+1);//a本来就是一个地址了,不要再加&了
int *ptr2=(int *)(a+1);//同理,强制转换成int使得+1会出错
printf("%x,%x",ptr1[-1],*ptr2);
return 0;
}