#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
#define n 2
#define m 3
int main()
{
int a[n][m];
int *p; //定义一个可以指向整型变量的一级指针变量p
int i,j;
int (*pt)[m]; //定义一个可以指向m列二维数组的二级指针变量pt
printf("请输入%d行%d列二维数组,共%d个元素\n", n,m,n*m);
//下面的for循环是把数组a看做是一个一维数组来指向的
for(p=&a[0][0]; p<&a[0][0]+n*m; p++)
cin >> *p;
// scanf("%d", p);
printf("按照%d行%d列的规格输出所有数组元素\n", n,m);
//下面的for循环是把数组a看做是一个一维数组来指向的
for(p=&a[0][0];p<&a[0][0]+n*m;p++)
{
if(p!=&a[0][0] && (p-&a[0][0])%m==0)
printf("\n");
printf("%d\t",*p);
}
printf("\n\n");
//下面的for循环是把数组a看做是一个二维数组来指向的
for(pt=a,i=0; i<n; i++)
{
for(j=0; j<m; j++)
printf("%d\t", *(*(pt+i)+j)); //等价于a[i][j],pt[i]p[j]
printf("\n");
}
return 0;
}