C/C++二维数组各种传参方法
#include <stdio.h>
#include <iostream>
using namespace std;
const int M=5;
const int N=5;
void array_init_v1(int A[][N])
{ int i,j,count=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
A[i][j]=count++;
}
}
}
void array_init_v2(int (*A)[N])
{ int i,j,count=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
A[i][j]=count++;
}
}
}
void array_init_v3(int *p)
{ int i,j,count=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
*(p+i*N+j)=count++;
}
}
}
void array_init_v4(int **p)
{ int i,j,count=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
//*(*(p+i)+j)=count++;
p[i][j]=count++;
}
}
}
void array_init_v5(int **p )
{ int i,j,count=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
*((int *)p+i*N+j)=count++;
}
}
}
void array_init_v6(int (*(&p))[N] )
{ int i,j,count=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
p[i][j]=count++;
}
}
}
int main()
{ int A[M][N];
int i,j;
//array_init_v1(A);
//array_init_v2(A);
//array_init_v3(A[0]);
/*
int *p[M];
for(i = 0; i<M; i++)
{
p[i]=A[i];
}
array_init_v4(p);
*/
//array_init_v5((int **)A);
int (*p)[N] = A;
array_init_v6(p);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
cout << A[i][j] << '\t';
}
cout << endl;
}
return 0;
}
喜欢就点个赞吧,谢谢啦