间接寻址

非常简单:

  *(一级地址)

二维情况:

 1 ...
 2 
 3 int a[3][2]={1,2,2,3,3,4};
 4 
 5 int *p = a[0];//*(p+0)+0,&a[0][0]一级地址 
 6 for(int i=0; i<3; i++)
 7 {
 8     for(int j=0; j<2; j++)
 9         cout<<*(p+i*2+j)<<'	';
10         cout<<endl;
11 }
12 
13 ...

三维情况:

...

int b[2][3][4];
//init
for(int i=0; i<2; i++)
    for(int j=0; j<3; j++)
    for(int k=0; k<4; k++)
        b[i][j][k] = i+1;

int *pb = b[0][0];//同*(*(b+0)+0)+0,即&b[0][0][0],pb为一级地址 

//二维打印
for(int i=0; i<2; i++)
{
    for(int j=0; j<3; j++)
        for(int k=0; k<4; k++)
            cout<<*(pb+i*3*4+j*4+k)<<'	';
    cout<<endl; 
}

...
原文地址:https://www.cnblogs.com/guoyujiang/p/11804415.html