二级指针与数组地址的区别与联系

来源:互联网 发布:武侠小说推荐 知乎 编辑:程序博客网 时间:2024/05/16 01:48
#include <stdio.h>


int main(void)
{
int **p;
int arr[10];
        p=&arr;
return 0;

}


分析:运行程序后出现错误提示信息:cannot convert from 'int (*)[10]' to 'int **'。即这两个是不同类型的指针,只有相同类型的指针才能相互赋值。所以修改程序如下:
 #include <stdio.h>

int main(void)
{
int **p,*q;
int arr[10];
    q=arr;
p=&q;
return 0;
}

分析:q是指向的是int类型变量的指针,p是指向指针(该指针指向的是int类型变量的指针)的指针。即用q进行过渡。