首页 > 代码库 > 二维数组作为函数参数的几种方法
二维数组作为函数参数的几种方法
#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;}
//数组按行存储
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。