#includevoid main(void) { int a[5] = {1, 2, 3, 4, 5}; printf("%dn",&a);//6618672 printf("%dn",*a);//1 printf("%dn",(int *)a);//6618672 printf("%dn",*(int *)a);//1 printf("%dn",&a+1);//6618692 printf("%dn",(int *)(&a+1));//6618692 printf("%dn",*(int *)(&a+1));//0 printf("%dn",*(&a+1));//6618692 printf("%dn",*(a+1));//2 int *ptr = (int *)(&a + 1); // &a取址后以a[0-4]整个数组为步进,a以a[0]也就是int为步进 printf("%dn",*ptr);//0 printf("%dn",&ptr);//6618664 printf("%dn",*ptr+1);//1 printf("%dn",*(ptr+1));//0 printf("%dn",*(ptr-1));//5 printf("%d %d" , *(a + 1), *(ptr - 1));//2 5 }



