#include <stdio.h> #define N 5 void 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; }
//数组按行存储
二维数组作为函数参数的几种方法
时间: 2024-12-25 00:09:07