请大佬解:指向数组指针的指针
int array = {{1,2,3},{4,5,6}};int xxxx = &array;
我用了:(*(*p)) = &array;
结果显示指针类型不兼容 !有无大佬帮忙讲解一下。不胜感激!{:5_109:} #include <stdio.h>
int main()
{
int array = {{1,2,3},{4,5,6}};
int (*p1) = array; // 数组指针
int (*p2) = &array; // 二维数组指针
int i, j;
for(i=0; i<2; i++) // 行
{
for(j=0; j<3; j++) // 列
{
printf("%d ", *(*(p1+i)+j)); // *(p1+i) 行的地址, j 列的地址, *(*(p1+i)+j) 取*(p1+i)行j列地址的值
}
}
printf("\n");
for(i=0; i<2; i++) // 行
{
for(j=0; j<3; j++) // 列
{
printf("%d ", *( *((*p2)+i) +j)); // (*p2)得到1维行的地址(也就是&array二维数组地址 -> array一数组地址),*((*p2)+i) 行的地址,j列的地址,
}
}
printf("\n");
return 0;
}
ba21 发表于 2022-3-13 19:12
你就是我亲大哥{:5_100:} 本帖最后由 jhq999 于 2022-3-13 20:15 编辑
ba21 发表于 2022-3-13 19:12
#include <stdio.h>
int main()
{
int array = {{1,2,3},{4,5,6}};
int *p=*array;//一维数组指针
int (*p1) = array; // 二维数组指针
int (*p2) = &array; // 三维数组指针
int i, j;
for (i = 0; i < 2*3; i++)
{
printf("%d ", p);
}
printf("\n");
for(i=0; i<2; i++) // 行
{
for(j=0; j<3; j++) // 列
{
printf("%d ", p1); //
}
}
printf("\n");
for(i=0; i<2; i++) // 行
{
for(j=0; j<3; j++) // 列
{
printf("%d ", p2);
}
}
printf("\n");
return 0;
}
jhq999 发表于 2022-3-13 20:11
你就是我亲二哥!{:5_100:}
页:
[1]