#include <stdio.h>
int main()
{
int a[5] = {1,2,3,4,5};
int *ptr = (int*)(&a+1);
printf("%d %d" , *(a+1), *(ptr-1) );
}
结果为:2,5 &a+1其中的1=1*sizeof(a[5]*) 而ptr-1中的1=1*sizeof(int *)
总结:
有int a[5];
则a 和 &a 都指向了数组的起始地址
a是一个指向int的指针常量,a+1的步长是sizeof(int)
而&a是一个指向a[5]的指针常量,&a+1的步长是sizeof(a)