#include<stdio.h>
#include<stdlib.h>
/* 二维数组与指针.c */
/* written by Chen Gengru */
/* updated on 2019-1-3 */
void main()
{
int i, j, *p, a[3][5];
for (i = 0; i < 3; i++) //定义一个二维数组
{
for (j = 0; j < 5; j++)
{
a[i][j] = 5*i + j + 1;
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
printf("%5d", *(a[i]+j));
}
printf("\n");
}
}
改写为指针p:
#include<stdio.h>
#include<stdlib.h>
/* 二维数组与指针.c */
/* written by Chen Gengru */
/* updated on 2019-1-3 */
void main()
{
int i, j, *p, a[3][5];
p = a[0];
for (i = 0; i < 3; i++) //定义一个二维数组
{
for (j = 0; j < 5; j++)
{
*p = 5*i + j + 1;
p++;
}
}
p = a[0];
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
printf("%5d", *p++);
}
printf("\n");
}
}
也可以这么写:
#include<stdio.h>
#include<stdlib.h>
/* 二维数组与指针.c */
/* written by Chen Gengru */
/* updated on 2019-1-3 */
void main()
{
int i, j, *p, a[3][5];
p = a[0];
for (i = 0; i < 3; i++) //定义一个二维数组
{
for (j = 0; j < 5; j++)
{
a[i][j] = 5*i + j + 1;
}
}
p = a[0];
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
printf("%5d", *(a[0] + 5*i +j));
}
printf("\n");
}
}
结果: