#include"stdio.h"
int main()
{
int x[2]={1,2};
int w[2]={3,4};
int *a[2]={x,w};
int b,c,d,**p;
p=a;
for(b=0;b<2;b++)
{
for(c=0;c<2;c++)
printf("%-2d",*(*(p+b)+c));
printf("\n");
}
}
这里指针的指针p,似乎完成了一个整形二维数组的输出。于是,我就认为指针的指针再加上malloc对*p内存的申请,可以使**p使用连续的内存,这就类似有一个数组;我认为 指针的指针就可以表示一个二维数组,但是当我如下定义时,却出错了:
#include"stdio.h"
int main()
{
i
int a[2[2]={1,2,3,4};
int b,c,d,**p;
p=a;//编译器提示错在这一行
for(b=0;b<2;b++)
{
for(c=0;c<2;c++)
printf("%-2d",*(*(p+b)+c));
printf("\n");
}
}
请问我错哪了,急,求解