#include <stdio.h>
int main(int argc, char* argv[])
{
int a[5]={1,2,3,4,5};
int *ptr1=(int*)(&a+1);
int *ptr2=(int*)((int)a+1);
int *ptr3=(int*)(&a[0] + 1);
printf("%x,%x,%x/n",ptr1[-1],*ptr2,*ptr3);
getchar();
return 0;
}
百分之八十的人会想不到输出结果,建议大家运行一下,再想想原因
题目虽小,但是考察的知识点可真多。运行结果足够我们出乎意料的。
注意的是这样的代码在我们的日常应用是不多见的,不提倡的。但作为考题,足够我们思索半天了。