今天写了一个程序:#include<stdio.h>
void h(int a[],int k);
void main()
{
int i,b[10];
printf("input 10 numbers:/n");
for(i=0;i<10;i++)
scanf("%d",&b[i]);
printf("befor change:/n");
for(i=0;i<10;i++)
printf("%6d",b[i]);
printf("/n");
h(b,10);
}
void h(int a[],int k)
{
int g,c[10];
for(g=0;g<10;g++)
c[g]=a[9-g];
printf("after change:/n");
for(g=0;g<10;g++)
printf("%6d",c[g]);
printf("/n");
}
这个程序中有容易犯的错误:首先是数组充当形式参数的定义void h(int a[],int k);必须单独的给出参数来限定数组的长度,因为函数在传值是只能传递一个值,即数组的首地址,故需要给出长度;在作实参时,引用应该是h(b,10);(即给出数组的首地址,和数组的长度)。只有在一维数组中可以只有数组名。