#include <stdio.h>
int *ptr = (int *)(&a+1);
printf("%d\n", a);
printf("%d\n", (a+1)); //&(a+1)表示a指向的地方加4个字节的位置
printf("%d\n", (&a+1)); //因为a是数组名称,所以&a+1表示增加整整一个数组的地址
printf("%d", *(ptr-1));
void main(void)
{
int a[5] = {1,2,3,4,5};int *ptr = (int *)(&a+1);
printf("%d\n", a);
printf("%d\n", &a); //因为a和&a的值是相等的,则&a不是指向指针的指针
printf("%d\n", *&a); //但是*a和*&a的值是不相等,*&a和a的值是相同的,说明*&a仅仅是对数组指针进行了取值//取得数组的值,即数组元素首地址的值,
//而不是对&a进行了取值
printf("%d\n", (a+1));printf("%d\n", (a+1)); //&(a+1)表示a指向的地方加4个字节的位置
printf("%d\n", (&a+1)); //因为a是数组名称,所以&a+1表示增加整整一个数组的地址
printf("%d", *(ptr-1));
}