问题描述:用行指针访问二维数组
编译环境vc++6.0
代码:
#include <stdio.h>
int main()
{
int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
int(*p)[4]; //行指针
p = a; //指向数组a的第一行
printf("方法1:\n");
while (p < a + 3)
{
for(int i=0;i<4;i++)
printf("%d\t", (*(*p + i)));
fputchar('\n');
p++;
}
printf("方法2:\n");
p = a;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
printf("%d\t", *(*(p + i) + j));
putchar('\n');
}
return 0;
}
测试案例: