#include <stdio.h>
int main(void)
{
int **p;
int arr[10];
p=&arr;
return 0;
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进行过渡。