《横扫Offer:程序员招聘真题详解700题》著者:开点工作室编著 P36
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a[4] = {1,2,3,4};
int* ptr = (int*)(&a+1);
printf(" a=%p\n",a);
printf(" &a[0]=%p\n", &a[0]);
printf(" &a[1]=%p\n", &a[1]);
printf(" &a[2]=%p\n", &a[2]);
printf(" &a[3]=%p\n", &a[3]);
printf(" &a=%p\n", &a);
printf(" ptr=%p\n", ptr);
printf(" ptr-1=%p\n", ptr-1);
printf(" *(ptr-1): %d\n", *(ptr-1));
return 0;
}
//结果
a=000000744256FB58
&a[0]=000000744256FB58
&a[1]=000000744256FB5C
&a[2]=000000744256FB60
&a[3]=000000744256FB64
&a=000000744256FB58
ptr=000000744256FB68
ptr-1=000000744256FB64
*(ptr-1): 4
结果:
a=000000744256FB58
&a[0]=000000744256FB58
&a[1]=000000744256FB5C
&a[2]=000000744256FB60
&a[3]=000000744256FB64
&a=000000744256FB58
ptr=000000744256FB68
ptr-1=000000744256FB64
*(ptr-1): 4