数组变量是特殊的指针:

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);

输出结果

数组变量与指针的关系

数组变量与指针的关系

数组变量与指针的关系

相关文章: