求助指针如何给二维数组赋值

2025-03-10 23:19:17
推荐回答(1个)
回答1:

定义一个指向数组的指针就可以了啊,例如:

int a[5][4];
int (*p)[4]; //指向数组的指针
int i,j;
for(p=a,i=0;i<5;i++)
{
    for(j=0;j<4;j++)
        scanf("%d",(*(p+i)+j));  //*(p+i)等价于p[i]
}

 完整示例程序如下:

#include 
int main()
{
int a[5][4];
int (*p)[4]; //指向数组的指针
int i,j;
for(p=a,i=0;i<5;i++)
{
for(j=0;j<4;j++)
scanf("%d",(*(p+i)+j));  //*(p+i)等价于p[i]
}
printf("输出数组元素:\n");
for(p=a,i=0;i<5;i++)
{
for(j=0;j<4;j++)
printf("%4d",*(*(p+i)+j));
printf("\n");
}
return 0;
}

示例运行结果:

1 2 3 4

11 12 13 14

21 22 23 24

31 32 33 34

41 42 43 44

输出数组元素:

   1   2   3   4

  11  12  13  14

  21  22  23  24

  31  32  33  34

  41  42  43  44