2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【C语言】二维数组作为函数参数传递

【C语言】二维数组作为函数参数传递

时间:2024-03-29 05:36:34

相关推荐

【C语言】二维数组作为函数参数传递

二维数组只能作为函数实参传递

方法一

int in(int a[][j]);

in(a);

#include<stdio.h>#define i 3#define j 3//输入二维数组信息int in(int a[][j]){printf("请输入二维数组信息:\n");for(int p=0;p<i;p++)for(int q=0;q<j;q++){scanf("%d",&a[p][q]);}return 0;}//输出修改后二维数组信息int out(int a[][j]){a[0][0] = 100;printf("修改后二维数组信息:\n");for(int p=0;p<i;p++){for(int q=0;q<j;q++){printf("%d ",a[p][q]);}printf("\n");}return 0;}int main(){int a[i][j];in(a);out(a);}

方法二

二维数组的存储是线性存储,可以用数组第一个数的地址作为参数传递,进而推出数组中的其它数。

int in(int *a);

in(&a[0][0]);

#include<stdio.h>#define i 3#define j 3//输入二维数组信息int in(int *a){printf("请输入二维数组信息:\n");for(int p=0;p<i;p++)for(int q=0;q<j;q++){scanf("%d",a+p*j+q);}return 0;}//输出修改后二维数组信息int out(int *a){*(a) = 100;printf("修改后二维数组信息:\n");for(int p=0;p<i;p++){for(int q=0;q<j;q++){printf("%d ",*(a+p*j+q));}printf("\n");}return 0;}int main(){int a[i][j];in(&a[0][0]);out(&a[0][0]);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。