关于数组作函数参数的错误
2009-11-01 11:13
405 查看
今天写了一个程序:#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);(即给出数组的首地址,和数组的长度)。只有在一维数组中可以只有数组名。
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);(即给出数组的首地址,和数组的长度)。只有在一维数组中可以只有数组名。
相关文章推荐
- 求数组子数组之和最大值问题-犯了一个很2B的错误,函数参数啊函数参数
- 关于 Numpy 数组作为函数参数的一个小问题
- c++中关于数组作为函数参数并传递数组元素个数的几种有效方法的讨论
- Excel 中文版中插入函数对话框中关于 VLOOKUP 函数的参数的错误描述
- c++中关于数组作为函数参数并传递数组元素个数的几种有效方法的讨论
- C++学习笔记(四)——关于数组作为函数参数的值传递和引用传递
- c++中关于数组作为函数参数的几种方法
- 【错误记录】二维数组初始化,以二级指针传递函数参数
- 黑马程序员---------C语言 关于数组被当作函数参数传递的问题
- 关于数组做函数参数的问题集合汇总
- 2.关于结构体以及结构体数组作为函数入口参数的方法(学习笔记)
- 关于将数组作为参数传递给函数的简单使用
- 关于数组做函数参数的问题汇总
- 关于作为函数参数的多维数组的声明、定义和调用
- 关于C51的中断函数要注意的几个问题 -----中断中调用函数参数错误问题
- 我想知道哪里出错了---关于以数组为参数的函数
- 关于数组做函数参数的问题汇总
- 一次关于数组作为函数参数的较真
- 关于函数的参数为类的引用时编译错误的分析
- c++中关于数组作为函数参数并传递数组元素个数的几种有效方法的讨论