VC++如何在函数中引用一个二维数组

VC++如何在函数中引用一个二维数组,第1张

形参和实参只要维数对应就可以了
例如
函数中 proc(int a[][10]) 可以省略第一维的大小,因为c语言编译系统不检查第一维的大小,只要第二维大小相同,形参数组第一维可以与实参不同。
函数中 先定义了b[][10]
引用时:proc(b)即可
即把2维数组b得首地址即b[0][0]的地址传给形参a,因为数组名本身既是指针常量,所以在函数中对数组a中元素的 *** 作会改变数组b中元素得值。

#include "stdafxh"
#include "iostream"
using namespace std;
inline int shuru(int[20][2]);
inline int pingjun(int[20][2],char);
int main()
{
int chengji[20][2];
int sums=0,sumw=0;
shuru(chengji); //调用shuru()函数
sums=pingjun(chengji,'s');
sumw=pingjun(chengji,'w');
cout<<"全班的总平均分为:"<<(sums+sumw)/40
<<"\n物理平均分为:"<<sumw/20
<<"\n数学平均分为:"<<sums/20;
return 0;
}
int shuru(int chengji[20][2])
{
int i;
for(i=0;i<=19;i++)
{
cout<<"请输入第"<<i+1<<"个同学的数学成绩:";
cin>>chengji[i][0];
cout<<"请输入第"<<i+1<<"个同学的物理成绩:";
cin>>chengji[i][1];
}
return 0; //定义了int返回,就要返回一个值,即使这个返回值没什么用
}
int pingjun(int chengji[20][2],char a)
{
int i,sum=0; //sum要初始化
for(i=0;i<=19;i++)
{
if(a=='s')
sum+=chengji[i][0];
if(a=='w')
sum+=chengji[i][1];
}
return sum;
}

#include <stdioh>
#include <stdlibh>
#include <malloch>
#define m 3   / row /
#define n 4   / column /
int creat2d(int mm,int nn);//声明一下子函数
void main()
{
int i,j;
int s;
s=creat2d(m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
s[i][j]=i2+j;//s当做二维数组使用
printf("s[%d][%d]=%d ",i,j,s[i][j]);
}
printf("\n");
}
for(i=0;i<m;i++)//先free掉m个行指针
{
free(s[i]);
s[i]=NULL;//free之后要置为null,防止野指针
}
free(s);
s=NULL;//防止野指针
}
int creat2d(int mm,int nn)
{
int a;
int j;
a=(int)malloc(sizeof(int)mm);//mm个行
for(j=0;j<mm;j++)
a[j]=(int)malloc(sizeof(int)nn);//每行nn个数
return a;
}

int fun(int p[N][M],int l)函数声明:
int fun(int p[N][M],int l);
int fun(int p[N][M],int l)函数定义:
int fun(int p[N][M],int l)

int a[][5];这个只是个指针,不是实体
你在main里顶一个数组就好了
int a[5][5];
用这种Input_sz(a);调用
你主函数中少分号。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10258765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存