怎么随机给二维数组赋值,指针表示

#define M 25
#define N 25

int array[M][N];
int i, j;

void Rand(int *p, int n)
{
p = &array[0][0];
for(i = 0;i<n;i++
{

*(p + i) = rand()%100;
}
}

这是一维指针,要求是二维,怎么破

#include
#include

//输出数组中的数字
void Output(int *a, int len);

void main()
{
int a[5][5];

int len = sizeof(a) / sizeof(int);

for(int *p=&a[0][0]; p<&a[0][0]+len; p++)
{
    *p = rand () % 100;
}

int *p = &a[0][0];

//输出数组中的数字
Output(p, len);

system("pause");

}

//输出数组中的数字
void Output(int* a, int len)
{
for(int *p=a; p<a+len; p++)
{
printf("%d ",*p);
}

printf("\n");

}

两层嵌套就是了

(p+i) 等价于 p[i]
*((
(p+i))+j) 等价于 p[i][j].也可以根据上面的等价写成 *((p[i])+j)