① 关于c语言中一维数组做函数的参数
是对的啊:
typedefunsignedcharuchar;
ucharA[12];
ucharB[12];
ucharC[12];
voidtest(ucharTEMP[12])//这是处理数组的函数
{
ucharCOUNT;
for(COUNT=0;COUNT<12;COUNT++)
{
TEMP[COUNT]=1;//这里简单点写,就写把数组都填满1了
}
}
voidmain()//主函数
{
test(A);//将数组A填满1
test(B);//将数组B填满1
test(C);//将数组C填满1
printf("ABC ");
for(inti=0;i<12;i++)
{
printf("%d%d%d ",A[i],B[i],C[i]);
}
}
结果:
② C语言中一维数组作为函数参数传递的问题!!!!!
参数3中传递方式.
值传递,址传递, 引用传递.
后两者 才是对传入的参数的实际操作.
第一个是 操作的 传入参数的拷贝副本.
③ C语言数组做形参定义语法
a如果是函数是可以的,x[]表示数组x的地址,int x[]等价于int *x
④ C语言编程题,若函数形参为一维数组作函数参数编写函数,统计某一维数组中非0元素的个数
#include <stdio.h>
int func(int a[],int n)
{
int i,cnt;
for(cnt=0,i=0;i<n;++i)
if(a[i])
cnt++;
return cnt;
}
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
printf("%d ",func(a,10));
return 0;
}
⑤ 一维数组形参(C语言)
如果对全部元素都赋初值,则定义数组时对第一维的大小可以忽略,但第二维的大小不能省。例如:
int a[][4]=;
与下面的代码是等价的:
int a[3][4]=;
编译器会根据数据总个数分配空间,每行4列,所以确定该数组为3行。
⑥ 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语言 一维数组 实参与形参与指针的问题
实参是a,它可以作为指针名使用,等同于指向首元a[0]的指针。形参int a[]等价于int *a,它指向实参a数组的首元a[0]的地址。
⑧ c语言中一维数组作为实参时,对应它的形参怎么写c语言中二维数组作为实参时,对应它的又形参怎么写
一维可以直接写成void fun(char a[]);
二维则需要写出第二维的大小void fun(char a[][5]);
在这2中声明中,都可以写完整的维数
void fun(char a[3]);
void fun(char a[2][5]);
⑨ C语言关于一维数组做实参的问题
参数的两种形式:
1、传值:形参只是实参的一个副本,它只存在被调函数中,在被调函数中对形参的改变不会影响实参的值。
2、传址:形参是实参的一个地址,在被调函数中对形参的改变会影响实参的值。
在c语言中,简单变量默认是传值,而数组默认是传址。
所以出现你所说的一系列怪现象。
好好想一下,若还不明白请留言。
⑩ c语言 数组作为函数参数怎样写
囧...
你的数组定义的size是N+1,参数传进去的size是N。
参数调用方法没错,细心,细心啊,老兄...