问题及代码:
/*使用指向二维数组元素的指针*/
#include<stdio.h>
int main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p;
for(p=a[0];p<a[0]+12;p++)
{
printf("%3d",*p);
}
return 0;
}
/*使用指向一维数组元素的指针*/
#include<stdio.h>
int main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int i,j,(*p)[4];
for(p=a,i=0;i<3;i++,p++)
{
for(j=0;j<4;j++)
printf("%3d",*(*p+j));
printf("\n");
}
return 0;
}
/*使用指向一维数组元素的指针之二*/
#include<stdio.h>
int main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int i,j,(*p)[4];
p=a[0]; //p指向0行0列;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%d\t",*(*(p+i)+j));
printf("\n");
}
return 0;
}
/*使用指针数组*/
#include<stdio.h>
int main()
{
int b[2][3]={1,2,3},{4,5,6};
int *pb[2];
int i,j;
pb[0]=b[0];
pb[1]=b[1];
for(i=0;i<2;i++)
{
for(j=0;j<3;j++,pb[i]++)
printf("%2d",*pb[i]);
printf("\n");
}
return 0;
}