数组变量是特殊的指针:
1、数组变量本身表达地址,所以
int a[10]; int *p=a;
2、但是数组的单元表达的是变量,需要用&取地址,并且[ ]运算符可以对数组做,也可以对指针做
p=&a[0]; //将a[0]的地址保存在指针p中
并且p[0]=a[0]的数据
若p=&a[4];则将a[4]的数据=p[0],并且p[-1]=a[3]的数据
例 int a[] = {5, 15, 34, 54, 14, 2, 52, 72};
int *q ;
q=&a[1];
printf("%p\n",q);
printf("%d\n",q[0]);
printf("%d\n",q[-1]);
// printf("%p\n",q);
printf("%p\n",a);
输出结果