首页 > 代码库 > 二维数组作为函数参数的几种方法

二维数组作为函数参数的几种方法

#include <stdio.h>#define N 5void fun1(int a[N][N]){        int i,j;    for (i=0;i<N;i++)    {        for (j=0;j<N;j++)        {            if (i>j)            {                a[i][j]+=a[j][i];                a[j][i]=0;            }                }    }}void fun2(int **a,int m,int n){    int i,j;    for (i=0;i<m;i++)    {        for (j=0;j<n;j++)        {                       if (i>j)            {                *((int *)a+i*m+j)+=*((int *)a+j*m+i);                *((int *)a+j*m+i)=0;            }                    }    }}void fun3(int *a,int m,int n){    int i,j;    for (i=0;i<m;i++)    {        for (j=0;j<n;j++)        {            if (i>j)            {                *(a+i*m+j)+=*(a+j*m+i);                *(a+j*m+i)=0;            }        }    }}int main(){    int b[5][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8},{5,6,7,8,9}};    //fun1(b);    //fun2((int **)b,5,5);    fun3(*b,5,5);    for (int i=0;i<5;i++)    {        for (int j=0;j<5;j++)        {            printf("%3d ",b[i][j]);        }        printf("\n");    }    return 0;} 

//数组按行存储