作者在 2012-12-31 20:38:12 发布以下内容
/*指针实现M*N数组array[M][N]的练习
*指针*p实现
*指针数组*q[N]实现
*array实现
*/
#include <stdio.h>
#define M 5
#define N 6
int main()
{
int array[M][N];
int cout=1;
int *p,*q[N],**r;
int k=0,l=0,v=0;
for(int x=0;x<M;x++) //数组用1,2,3。。。初始化
{
for(int y=0;y<N;y++)
{
array[x][y]=cout;
cout++;
}
}
p=&array[0][0]; //用指针P实现数组输出
for(int i=0;i<M*N;i++)
{
printf("%4d",*(p+i));
k++;
if(!(k%N)) //实现换行
printf("\n");
}
printf("\n");
for(int j=0;j<N;j++) //列指针q的赋值
{
q[j]=&array[0][j];
}
for(int s=0;s<M;s++)
{
for(int t=0;t<N;t++)
{
printf("%4d",*(q[t]+N*s)); //用列指针q实现数组输出
l++;
if(!(l%N)) //实现换行
printf("\n");
}
}
printf("\n");
for(int c=0;c<M;c++)
{
for(int d=0;d<N;d++)
{
printf("%4d",*(*(array+c)+d));
v++;
if(!(v%N)) //实现换行
printf("\n");
}
}
}