定义一个指向数组的指针就可以了啊,例如:
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