【C语言】二维数组作为函数参数传递
2023-12-16 11:02:07
二维数组只能作为函数实参传递
方法一
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]);
}
?
文章来源:https://blog.csdn.net/qq_63806300/article/details/126939788
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!