c语言数组变量作为函数参数

将数组传递给函数后,数组就会退化为指针

voidfun(intx,intpp[],int*n)
voidfun(intx,int*pp,int*n)
//这两种写法是等价的
pp[j++]=j;//这句写错了回
//要保存到答pp里的是能整除的整数,而不是计数器j,如果这么写,那么pp的值肯定是{0,1,2,3,4,5,...}
//应该改成
pp[j++]=l;//L才是被整除的整数,要保存的是这个
*n=j;//n作为一个指针,负责传出得到的数字的数量,j是计数器,当所有的计算完毕后,j的值自然是这些数字的数量

㈡ c语言中数组作为函数参数的问题。

E
数组作为参数不需要标示大小
A
数组参数在函数中要被隐式转换为一个常量指针在使用
F
定义数组值为int
a[i]
这里的i应该是一个编译时期决定大小常量表达式。

㈢ C语言中函数定义形参为数组时的问题

1.数组为参数传递的是数组首地址,而不是元素的值,而你说的a[size]仅仅是值,况且版事实上也没有a[size]这个元素权
2.既然是数组名的传递,当然需要由一个数组的参数来接收,int v[]”的问题是因为他是形式参数,是为了接收数组的
n的问题是因为,如果只传递了数组,但是函数并找不到数组的个数,所以需要把数组大小传递过来

㈣ 关于c语言中数组作为函数参数的函数之间调用问题

1、新建一个数组作为参数项目,如图所示:

㈤ C语言中数组作为函数参数

C中数组名代表该数组的首地址,
char
s[]="abc";
s代表的就是‘a’在内存中的地址
以地址作参数
,实参和形参同时改变

㈥ c语言 数组作为函数参数怎样写

如果一个函数的目的是要产生一个新的数组,那么最好的做法是在调用函数前就内生成好这个数组,然后把这容个数组作为参数传给函数,在函数中修改这个数组的值.
像你这种做法,在sum函数结束后,sth3数组就作为局部变量被释放了.而且在main中,sum数组声明以后,sum就是一个常量了,又怎么能放在=左边呢.
另外,sum函数的算法也错了.

正确代码如下:

void Sum(int sth1[][3],int sth2[][3],int sth3[][3])
{
int i = 0;
int j =0;
do
{
sth3[i][j]=sth1[i][j]+sth2[i][j];
j++;
if(j==3)
}while(i<3);
}

int main(void)
{
int matrix1[3][3]={
,
,

};
int matrix2[3][3]={
,
,
,
};
int sum[3][3];
Sum(matrix1,matrix2,sum);
Display(sum);
return 0;
}
如果还没解决你的问题,可以加我网络HI账号。

㈦ c语言 函数调用(形参为数组名的情况)

#include <stdio.h>
void sort(int a[20])
{ int i,j,k,t;
for(i=0;i<19;i++)
{ k=i;
for(j=i+1;j<20;j++)
if(a[k]>a[j]) k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
}
void main()
{ int a[20]={2,5,7,8,4,10,48,96,65,74,35,84,15,38,52,56,60,20,17,80};
sort(a);
}
没问题
我调试过了
记得给我加分

㈧ c语言中数组名作为函数参数

要将数组长度作为一个参数传给average函数,不能在average函数内部通过int arrLen = sizeof(a) / 4;来计算数组长度。因为float average(float a[10])就相当于float average(float *a) ,所以sizeof(a)恒等于4,sizeof(a) / 4恒等于1。
应该这样:
float average(float a[10],int arrLen) {
float sumSco = 0;
for (int i = 0; i < arrLen; i++)
{
sumSco += a[i];
}
return sumSco / arrLen;
}

㈨ 关于C语言数组作为函数的实参和形参的问题

函数传递数组的话,其实传递收地地址就好,把数组首地址传给函数的形参(这个形参务必定义为对应类型的指针),形参可以以指针的形式访问数组的内容,也可以直接用数组的方式访问