二維陣列傳參

sunmenggmail發表於2012-05-04

一般而言,有兩種傳參方式:

void fn(int p[][3],int n)
{
for (int i=0;i<n;++i)
{
for (int j=0;j<3;++j)
{
cout<<p[i][j]<<" ";
}
cout<<endl;
}
}

void fn1(int (*p)[3],int n)
{
for (int i=0;i<n;++i)
{
for (int j=0;j<3;++j)
{
cout<<p[i][j]<<" ";
}
cout<<endl;
}
}


//下面是兩種特殊的方式,
void fn2(int *p[],int n)
{
for (int i=0;i<n;++i)
{
for (int j=0;j<3;++j)
{
cout<<p[i][j]<<" ";
}
cout<<endl;
}
}

void fn3(int **p,int n)
{
for (int i=0;i<n;++i)
{
for (int j=0;j<3;++j)
{
cout<<p[i][j]<<" ";
}
cout<<endl;
}
}


int main()

{

int b[2][3] = {{0,1,2},{3,4,5}};

fn0(b);

fn1(b);


int c1[3] = {0,1,2};
int c2[3] = {3,4,5};
int *c[2];
c[0] = c1;
c[1] = c2;


int **d;
d = c;
d[0] = c1;
d[1] = c2;
fn2(d,2);
fn2(c,2);
fn3(c,2);
fn3(d,2);


}

相關文章