在C语言数组传入形参时发现的问题
lz刚学C语言不久,在写程序时,出现一些问题,望大佬指明。题目是写一个求二维字符数组的平均值的函数,代码如下:(简略版double matrixAvg(int x,int y,double a)
{
int i,j;
double sum;
for(i=0;i<x;i++)
for(j=0;j<y;j++)
sum+=a;
return sum/(x*y);
}
我记得C语言中是不能定义动态数组的,所以在写形参时,数组的我原本写的double a[],但是这样写出来后运行不出来,还会出现0x0000.....不可read的弹窗。但是写成上面的样子就能运行,希望有大佬解答一下这是什么原因 你的意思的把形参double a 替换成了 double a[]吗?
double matrixAvg(int x,int y,double a[])这样?
形参的内容意义并不是要去定义数组,而是要去接收数组,它的大小就是接收的数组大小,不需要预先定义出大小来。 写成(double a)这样编译器好像是不认的
写成double a[],这样子数组就确定了,只是在和传过来的数组对不上会有崩溃的可能
传地址就好了
如
double matrixAvg(double*a,int x,int y)
访问二维数组元素时用
*(a+i*x+j)
这个和a是一个意思(还有其他写法,都大同小异) 小能维尼 发表于 2021-12-5 17:52
你的意思的把形参double a 替换成了 double a[]吗?
double matrixAvg(int x,int y,double a[ ...
一般会写成什么样子呢?
页:
[1]