69,371
社区成员
发帖
与我相关
我的任务
分享
int data[5][5];
怎么用 二维指针 p 指向 data[2][2] 这个元素,
且要实现p[0][-1] = data[2][1] , p[-1][0] = data[1][2] p[0][0] =data[2][2] ; p[0][1]=data[2][3];
p[1][0] = data[3][2];p[1][1] = data[3][3];
int data[5][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};
typedef int (*pdata)[5][5];
pdata p=(pdata)(data[2]+2);
printf("%d %d\n",(*p)[0][-1],data[2][1]);
printf("%d %d\n",(*p)[0][1],data[2][3]);
printf("%d %d\n",(*p)[-1][0],data[1][2]);
#define M 5
#define N 5
void Dis(const int e[M][N])
{
int i,j;
for(i=0;i<M;++i)
{
for(j=0;j<N;++j)
printf("%02d ",e[i][j]);
printf("\n");
}
}
int main(int argc, char *argv[])
{
int i,j;
int data[M][N];
for(i=0;i<M;++i)
{
for(j=0;j<N;++j)
data[i][j]=i*10+j;
}
int (*pd)[N]=data;
Dis(data);
pd=(int (*)[N])&data[2][2];
cout<<"pd[0][0]=\t"<<pd[0][0]<<'\n';
cout<<"pd[0][-1]=\t"<<pd[0][-1]<<'\n';
cout<<"pd[-1][0]=\t"<<pd[-1][0]<<'\n';
cout<<"pd[-1][-1]=\t"<<pd[-1][-1]<<'\n';
cout<<"pd[0][1]=\t"<<pd[0][1]<<'\n';
cout<<"pd[1][0]=\t"<<pd[1][0]<<'\n';
cout<<"pd[1][1]=\t"<<pd[1][1]<<'\n';
////////////////////////////////////////////
// system("PAUSE");
return 0;
}