C/C++二维数组各种传参方法

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;
}

喜欢就点个赞吧,谢谢啦

猜你喜欢

转载自blog.csdn.net/weixin_38604589/article/details/88652182